home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Reference / the cmsp digests ('94-'97) / csmp digest Vol 4 No 036 < prev    next >
Text File  |  1997-02-19  |  118KB  |  3,370 lines

  1. C.S.M.P. Digest             Tue, 18 Feb 97       Volume 4 : Issue 36
  2.  
  3. Today's Topics:
  4.  
  5.         1-bit depth GWorld has colour?(!)
  6.         3D Info?
  7.         Application-like CPs
  8.         Controlling freePPP
  9.         Determining if serial port in online?
  10.         Faster line drawing routines?
  11.         Floating palettes
  12.         Is LINUX available for Macintosh?
  13.         Is palette animation w- > 256 colors possible?
  14.         Need INIT source code
  15.         Objective C
  16.         Registering app signatures and file types
  17.         Serial port arbitration with OT
  18.         Virtual Memory Question
  19.         What does "register" means on variable declaration?
  20.         Window Lists for Other Apps
  21.         must scriptability be so hard?
  22.  
  23.  
  24.  
  25. The Comp.Sys.Mac.Programmer Digest is moderated by Mark Aiken
  26. (marka@ee.mcgill.ca).
  27.  
  28. The digest is a collection of article threads from the internet
  29. newsgroups comp.sys.mac.programmer.help, csmp.tools, csmp.misc and
  30. csmp.games. It is designed for people who read news semi-regularly and
  31. want an archive of the discussions.  If you don't know what a
  32. newsgroup is, you probably don't have access to it. Ask your systems
  33. administrator(s) for details. If you don't have access to news, you
  34. may still be able to post messages to the group by using a mail server
  35. like anon.penet.fi (mail help@anon.penet.fi for more information).
  36.  
  37. Each issue of the digest contains one or more sets of articles (called
  38. threads), with each set corresponding to a 'discussion' of a particular
  39. subject.  The articles are not edited; all articles included in this digest
  40. are in their original posted form (as received by our news server at
  41. ee.mcgill.ca).  Article threads are not added to the digest until the last
  42. article added to the thread is at least two weeks old (this is to ensure that
  43. the thread is dead before adding it to the digest).  Article threads that
  44. consist of only one message are generally not included in the digest.
  45.  
  46. The digests can be obtained by email, ftp or through the World Wide Web.
  47.  
  48. If you want to receive the digest by mail, send email to 
  49. majordomo@ee.mcgill.ca with no subject and one of the following commands
  50. as body:
  51.  
  52.     help                        Sends you a summary of commands
  53.     subscribe csmp                      Adds you to the mailing list
  54.     unsubscribe csmp                    Removes you from the list
  55.  
  56. Once you have subscribed, you will automatically receive each new
  57. issue as it is created.
  58.  
  59. Back issues are available by ftp from Info-Mac mirror sites in the
  60. per/csmp subdirectory, e.g.
  61.  
  62.   ftp://sumex-aim.stanford.edu/info-mac/per/csmp/
  63.  
  64. The contents of all back issues can be searched by accessing the
  65. following URL, courtesy of Andrew Barry (ajbarry@ozemail.com.au):
  66.  
  67.     http://marvin.stattech.com.au/search.html
  68.  
  69. They can also be searched through the following URLs, thanks to
  70. Tim Tuck (Tim.Tuck@sensei.com.au):
  71.  
  72.     http://wais.sensei.com.au/searchform.html
  73.     wais://wais.sensei.com.au:210/csmp?
  74.  
  75. -------------------------------------------------------
  76.  
  77. >From ianm@mmcorp.com (Ian McCall)
  78. Subject: 1-bit depth GWorld has colour?(!)
  79. Date: Tue, 28 Jan 1997 17:48:29 +0000
  80. Organization: The MultiMedia Corporation
  81.  
  82. Hi.
  83.  
  84. I have a colour picture, which I'd like to get down to mono. I believe I
  85. can do this by creating an offscreen 1-bit depth GWorld, then drawing my
  86. picture into it. Quickdraw should then take over and dither the picture
  87. accordingly, or at least so I believe.
  88.  
  89. The trouble is, the picture doesn't seem to be getting dithered. When I
  90. dump it out as a PICT file, it still contains colour.
  91.  
  92. Here's the code (the 'watermark' variables rather give away what the final
  93. aim is...):
  94.  
  95.  
  96.  
  97.  
  98. PicHandle     watermarkImage   = somePassedInParameter;
  99.  
  100. GDHandle      mainDevice;
  101. GWorldFlags   worldSettings;
  102. GWorldPtr     watermarkImageWorld;
  103.  
  104. PixMapHandle  watermarkImagePixMap;
  105.  
  106. Rect          watermarkPictureFrame = (**watermarkImage).picFrame;
  107.  
  108. OSErr         theResult;
  109.  
  110.  
  111.  
  112. // Get details about the main graphics device, and keep track of the current 
  113. // GWorld and specify how we'd like our GWorlds to behave
  114. GetGWorld(&originalWorld, &mainDevice);
  115. worldSettings = noNewDevice | useTempMem;  
  116.  
  117. // Allocate an offscreen mono GWorld to hold the watermark image
  118. if((theResult = (OSErr)NewGWorld(&watermarkImageWorld, 1, 
  119.     &watermarkPictureFrame, NULL, mainDevice, noNewDevice)) == noErr)
  120. {
  121.      // Keep track of this world's pix map, and lock it down whilst we're using 
  122.      // it
  123.      watermarkImagePixMap = GetGWorldPixMap(watermarkImageWorld);
  124.      LockPixels(watermarkImagePixMap);
  125.             
  126.      // Draw the watermarking image we've been given in this GWorld
  127.      SetGWorld(watermarkImageWorld, NULL);
  128.      ClipRect(&(watermarkImageWorld->portRect));
  129.      DrawPicture(watermarkImage, &watermarkPictureFrame);
  130. }
  131.  
  132.  
  133.  
  134. As far as I'm concerned, watermarkImagePixMap should contain a mono
  135. version of watermarkImageWorld by now. It doesn't though.
  136.  
  137. Any clues?
  138.  
  139.  
  140. Cheers,
  141. Ian
  142.  
  143. +++++++++++++++++++++++++++
  144.  
  145. >From gherrick@stratos.net
  146. Date: Thu, 30 Jan 1997 08:50:03 -0600
  147. Organization: (none)
  148.  
  149. In article <ianm-2801971748290001@194.70.62.242>, ianm@mmcorp.com (Ian
  150. McCall) wrote:
  151.  
  152. > Hi.
  153. > I have a colour picture, which I'd like to get down to mono. I believe I
  154. > can do this by creating an offscreen 1-bit depth GWorld, then drawing my
  155. > picture into it. Quickdraw should then take over and dither the picture
  156. > accordingly, or at least so I believe.
  157. > The trouble is, the picture doesn't seem to be getting dithered. When I
  158. > dump it out as a PICT file, it still contains colour.
  159. > Here's the code (the 'watermark' variables rather give away what the final
  160. > aim is...):
  161. ...
  162. snip
  163. ...
  164. > // Allocate an offscreen mono GWorld to hold the watermark image
  165. > if((theResult = (OSErr)NewGWorld(&watermarkImageWorld, 1, 
  166. >     &watermarkPictureFrame, NULL, mainDevice, noNewDevice)) == noErr)
  167. > {
  168.  
  169. The problem is the "noNewDevice" flag. Since you're not using a new device,
  170. it ignores the depth you specify and uses the depth of the main device. Try
  171. it without "noNewDevice." It's okay to make an offscreen device. And you
  172. shouldn't need to do anything else besides remember to dispose of it later.
  173. That's one reason GWorlds/GDevices are nice.
  174.  
  175. - Graham
  176.  
  177.  
  178. +++++++++++++++++++++++++++
  179.  
  180. >From Dave Howell <dshowell@worldnet.att.net>
  181. Date: Thu, 30 Jan 1997 23:19:53 -0800
  182. Organization: Pablo Media
  183.  
  184. Ian McCall sez:
  185. > Hi.
  186.  
  187. Hi Ian.
  188.  
  189. > I have a colour picture, which I'd like to get down to mono. I
  190. > believe I can do this by creating an offscreen 1-bit depth GWorld,
  191. > then drawing my picture into it. Quickdraw should then take over
  192. > and dither the picture accordingly, or at least so I believe.
  193. >
  194. > The trouble is, the picture doesn't seem to be getting dithered.
  195. > When I dump it out as a PICT file, it still contains colour.
  196. > Here's the code (the 'watermark' variables rather give away what the
  197. > final aim is...):
  198. >
  199. > [code brutally snipped]
  200.  
  201. The trouble is that you're using DrawPicture to draw into your 1-bit
  202. PixMap. DrawPicture doesn't dither. You need to tell DrawPicture to draw
  203. into a nice 16-bit or 24-bit direct-color PixMap, and then call CopyBits
  204. (don't forget to add the constant ditherCopy to your copy mode
  205. parameter) to perform a dithered copy into your 1-bit PixMap.
  206. Alternatively, if you can require QuickTime for your application, you
  207. might call DrawTrimmedPicture, which accepts a Boolean doDither
  208. parameter.
  209.  
  210. Dave
  211.  
  212. ---------------------------
  213.  
  214. >From David Snowdon <snowdon@ozemail.com.au>
  215. Subject: 3D Info?
  216. Date: Thu, 30 Jan 1997 18:58:00 +1000
  217. Organization: Concussive Software
  218.  
  219. Hi,
  220.  
  221. I am looking to start in 3D programming (with a view to eventually 
  222. making some cool games). I definitely want a true 3D environment... 
  223. Could someone please tell me what the best books to get are? The black 
  224. art of mac game programming is one name that has some up... What 
  225. should I get? I don't exactly have that much money to spend on books, 
  226. so what should I and what do I have to get?
  227.  
  228. Dave.
  229.  
  230. +++++++++++++++++++++++++++
  231.  
  232. >From kefka@astral.magic.ca (Dan Posluns)
  233. Date: Sun, 02 Feb 1997 19:49:17 -0400
  234. Organization: TotalNet Inc.
  235.  
  236. In article <32F06298.F03@ozemail.com.au>, snowdon@ozemail.com.au wrote:
  237.  
  238. > Hi,
  239. > I am looking to start in 3D programming (with a view to eventually 
  240. > making some cool games). I definitely want a true 3D environment... 
  241. > Could someone please tell me what the best books to get are? The black 
  242. > art of mac game programming is one name that has some up... What 
  243. > should I get? I don't exactly have that much money to spend on books, 
  244. > so what should I and what do I have to get?
  245. > Dave.
  246.  
  247. Black Art is probably your best place to start if you want to do true 3-D
  248. as opposed to the more limited versions imposed on the Maradoom Forces
  249. genre, since  that is the main focus of the entire book. Tricks of the Mac
  250. Game Programming Gurus also has a pretty indepth section on QuickDraw 3D,
  251. but having the limited computational resources that I do (680LC40) I
  252. haven't really bothered to read through it. Still, there might be some
  253. good stuff there.
  254.  
  255. Good luck,
  256.  
  257. Dan.
  258.  
  259. -- 
  260. Dan Posluns - kefka@astral.magic.ca, http://www.magic.ca/~kefka/domain.html
  261. "What's the most important thing in life? To be free of obligations! Otherwise you lose the ability to gamble..." - Setzer, FF3
  262. "Play with fire and you get burned." - Magus, Chrono Trigger
  263. "I don't believe there are any bad people in this world. Just bad hearts and weak people. It's difficult for weak people to become strong. That's why we have to get rid of the bad hearts. Please understand." - Jean, Breath of Fire 2
  264.  
  265. +++++++++++++++++++++++++++
  266.  
  267. >From online@mactech.com (nick.c MacTech)
  268. Date: Tue, 04 Feb 1997 00:04:03 -0800
  269. Organization: MacTech Magazine
  270.  
  271.  
  272.  
  273. snowdon@ozemail.com.au wrote:
  274.  
  275. >I am looking to start in 3D programming (with a view to eventually 
  276. >making some cool games). I definitely want a true 3D environment... 
  277. >Could someone please tell me what the best books to get are?
  278.  
  279.  
  280.    Two books that you might find useful are:
  281.  
  282.      _Engines of Creation_ by Jonathan Blossom 
  283.        ISBN 1-878739-90-5
  284.  
  285.      _Fast Algorithms for 3-D Graphics_ by Georg Glaeser
  286.        ISBN 0-387-84288-2
  287.  
  288.     Engines has a nice, gradual paced tutorial on basic
  289.       3D programming that leads from the very basic mathematics
  290.       of projection and graphics worlds, up through wireframes,
  291.       polygon rendering, clipping, shading, and inline performance
  292.       optimization for the mac.
  293.  
  294.     Glaeser, has some great code including reflections, depth
  295.       buffering, complex objects, shadows, etc.  The code is
  296.       object based, platform independent C++.  Nice stuff.
  297.  
  298.     Hope this helps,
  299.  
  300. ____Nicholas C. DeMello, Ph.D.________________________________________
  301.  
  302.    Online at MacTech Magazine, the Journal of Macintosh Programming
  303.      http://www.MacTech.com/
  304.                                        _/   _/  _/  _/_/_/   _/   _/  
  305.   Chemistry: Nick@chem.UCLA.edu       _/_/ _/  _/  _/   _/  _/_/_/ 
  306.     MacTech: Online@MacTech.com      _/ _/_/  _/  _/       _/ _/    
  307.        http://www.chem.ucla.edu/~nick/   _/  _/   _/_/_/  _/   _/     
  308.  
  309.  
  310. ---------------------------
  311.  
  312. >From ntoge@netcom.com (Nobukazu Toge)
  313. Subject: Application-like CPs
  314. Date: Sun, 19 Jan 1997 16:27:21 GMT
  315. Organization: Netcom On-Line Services
  316.  
  317. Some control panels such as "AppleTalk" and "TCP/IP" have filetype
  318. 'cdev' and do have 'cdev' resources; yet they have their own menus
  319. and appear to act like applications. In fact they have 'CODE'
  320. resources as well. How do they make a combined use of those
  321. resources? Is there any documentation on this?  I've scanned
  322. thru dev CDs, but it's not obvious, and I'm curious.
  323.  
  324. --
  325. Nobu Toge
  326.      e-mails to  : ntoge@netcom.com
  327.  
  328. #include <StandardDisclaimers.h>
  329.  
  330. +++++++++++++++++++++++++++
  331.  
  332. >From davep@best.nospam.com (Dave Polaschek)
  333. Date: Tue, 21 Jan 1997 07:16:42 -0600
  334. Organization: Polaschek Publishing
  335.  
  336. In article <ntogeE49KDL.4FI@netcom.com>, ntoge@netcom.com (Nobukazu Toge) wrote:
  337.  
  338. > Some control panels such as "AppleTalk" and "TCP/IP" have filetype
  339. > 'cdev' and do have 'cdev' resources; yet they have their own menus
  340. > and appear to act like applications. In fact they have 'CODE'
  341. > resources as well. How do they make a combined use of those
  342. > resources? Is there any documentation on this?  I've scanned
  343. > thru dev CDs, but it's not obvious, and I'm curious.
  344.  
  345. They were using undocumented tricks. The "correct" way to do this,
  346. starting with System 7.6 is documented in Technote 1090, which is
  347. at <http://17.126.23.20/dev/technotes/tn/tn1090.html>
  348.  
  349. -DaveP
  350.  
  351. -- 
  352. Dave Polaschek - personal: davep@best.com or davep@mn.uswest.net
  353. PGP key and other spiffy things at <http://www.best.com/~davep/>
  354.  
  355. +++++++++++++++++++++++++++
  356.  
  357. >From chris-b@cs.auckland.ac.nz (chris-b)
  358. Date: Thu, 23 Jan 1997 17:44:48 +1300
  359. Organization: Auckland University HMU
  360.  
  361. In article <davep-2101970716430001@dialup76.mn.uswest.net>,
  362. davep@best.nospam.com (Dave Polaschek) wrote:
  363.  
  364. >In article <ntogeE49KDL.4FI@netcom.com>, ntoge@netcom.com (Nobukazu Toge)
  365. wrote:
  366. >
  367. >> Some control panels such as "AppleTalk" and "TCP/IP" have filetype
  368. >> 'cdev' and do have 'cdev' resources; yet they have their own menus
  369. >> and appear to act like applications. In fact they have 'CODE'
  370. >> resources as well. How do they make a combined use of those
  371. >> resources? Is there any documentation on this?  I've scanned
  372. >> thru dev CDs, but it's not obvious, and I'm curious.
  373. >
  374. >They were using undocumented tricks.
  375.  
  376. These CPs simply have a stub 'cdev' code resource that calls
  377. _LaunchApplication (not undocumented!) on their own file and then returns
  378. to the Finder with an error that requests no error dialog.
  379.  
  380. Chris B
  381. - ---------------------------------------------------------------------
  382. NewZealand:AucklandUniversity:ComputerScience:HyperMediaUnit:ChrisBurns
  383. Internet: chris-b@mad.scientist.com
  384. Phone:    +64 9 373-7599 x8976
  385. Fax:      +64 9 373-7453                         Async, Therefore I Am.
  386. - ---------------------------------------------------------------------
  387.  
  388. +++++++++++++++++++++++++++
  389.  
  390. >From williar2@muohio.edu (Robert E. Williams, Jr.)
  391. Date: Thu, 23 Jan 1997 03:19:21 -0500
  392. Organization: Enterprise Software
  393.  
  394. In article <ntogeE49KDL.4FI@netcom.com>, ntoge@netcom.com (Nobukazu Toge) wrote:
  395.  
  396. > Some control panels such as "AppleTalk" and "TCP/IP" have filetype
  397. > 'cdev' and do have 'cdev' resources; yet they have their own menus
  398. > and appear to act like applications. In fact they have 'CODE'
  399. > resources as well. How do they make a combined use of those
  400. > resources? Is there any documentation on this?  I've scanned
  401. > thru dev CDs, but it's not obvious, and I'm curious.
  402.  
  403. I'm not sure how Apple did it with the current crop of control panels, but
  404. I do know that 7.6 has a couple of new file types, including 'appc' (or
  405. something like that) that allows you to make your program an application,
  406. but have it routed to the Control Panels folder when it's dragged to the
  407. System Folder, just like 'cdev' files. I believe that they're even checked
  408. for 'cdev' code during startup. They also have a new one that again is for
  409. normal applications, but causes them to be routed to the Apple Menu Items
  410. folder; this is intended as a replacement for the traditional DA.
  411.  
  412.  
  413. Regards,
  414. Bob
  415. -- 
  416. Robert E. Williams
  417. Macintosh Developer
  418. Enterprise Software
  419. williar2@muohio.edu
  420.  
  421. ---------------------------
  422.  
  423. >From REMOVE.TO.REPLY.magnus@bahnhof.se (Magnus Thoor)
  424. Subject: Controlling freePPP
  425. Date: Thu, 30 Jan 1997 17:10:24 +0100
  426. Organization: -
  427.  
  428. Hi,
  429.  
  430. I'm a novice-programmer attempting to do a control-strip module to start
  431. and stop connections with freeppp (I know this already exists, but it's
  432. more of an exercise). I've trouble finding what calls I should make to
  433. open/close freeppp. I downloaded the source for MacPPP but for my
  434. limited knowledge of C++ it was too sparsly documented to be of use. I
  435. would appreciate any help I could get regarding this. 
  436.  
  437. BTW, I'm trying to do this in C++ with Codewarrior 8, if that matters.
  438.  
  439. Regards,
  440. Magnus 
  441.  
  442. -- 
  443. To reply via email, please edit from-field.
  444.  
  445. +++++++++++++++++++++++++++
  446.  
  447. >From friefeld@deltanet.com (Rob Friefeld)
  448. Date: Thu, 30 Jan 1997 22:35:07 -0800
  449. Organization: Delta Internet Services, Anaheim, Ca
  450.  
  451. In article <19970130171024746643@pppnode12.bahnhof.se>,
  452. REMOVE.TO.REPLY.magnus@bahnhof.se (Magnus Thoor) wrote:
  453.  
  454. >Hi,
  455. >
  456. >I'm a novice-programmer attempting to do a control-strip module to start
  457. >and stop connections with freeppp (I know this already exists, but it's
  458. >more of an exercise). I've trouble finding what calls I should make to
  459. >open/close freeppp. I downloaded the source for MacPPP but for my
  460. >limited knowledge of C++ it was too sparsly documented to be of use. I
  461. >would appreciate any help I could get regarding this. 
  462.  
  463. Get "PPP Interfaces 1.2" from info-mac if you are using FreePPP 2.5 or
  464. earlier. If you are using FreePPP 2.6, look in
  465. <ftp:members.aol.com/freepppgrp/> for public interface routines.
  466.  
  467.  
  468.                                       Rob Friefeld
  469.  
  470. +++++++++++++++++++++++++++
  471.  
  472. >From REMOVE.TO.REPLY.magnus@bahnhof.se (Magnus Thoor)
  473. Date: Sat, 1 Feb 1997 16:56:19 +0100
  474. Organization: -
  475.  
  476. Rob Friefeld <friefeld@deltanet.com> wrote:
  477.  
  478. > In article <19970130171024746643@pppnode12.bahnhof.se>,
  479. > REMOVE.TO.REPLY.magnus@bahnhof.se (Magnus Thoor) wrote:
  480. > >-del- I've trouble finding what calls I should make to
  481. > >open/close freeppp. - del- 
  482. >
  483. > Get "PPP Interfaces 1.2" from info-mac if you are using FreePPP 2.5 or
  484. > earlier. If you are using FreePPP 2.6, look in
  485. > <ftp:members.aol.com/freepppgrp/> for public interface routines.
  486.  
  487. Thank you very much. "ppp interfaces" was of great help. 
  488.  
  489. Thanks again,
  490. Magnus
  491.  
  492. -- 
  493. To reply via email, please edit from-field.
  494.  
  495. ---------------------------
  496.  
  497. >From Steve Collins <snilloc@ix.netcom.com>
  498. Subject: Determining if serial port in online?
  499. Date: Fri, 24 Jan 1997 09:31:53 -0800
  500. Organization: Netcom
  501.  
  502. Hi, sorry if this is a FAQ, but...
  503.  
  504. How do I tell if a serial port is online?  I found some code
  505. which depends on the SCC which looks something like:
  506.  
  507. I found some code that tells me if the "Modem Port" is online:
  508.  
  509. #define SCCRd            (*(Ptr *)0x1D8)
  510.  
  511. // PORTNO is 1 for Modem Port, perhaps 2 for Printer Port?
  512.  
  513. Boolean IsOnLine()
  514. {
  515.     register Byte r;
  516.  
  517.     r = *(SCCRd + ((PORTNO == 2) ? 0 : 2));    /* SCC channel A/B control */
  518.     r = *(SCCRd + 2);    /* SCC channel A/B control */ 
  519.     
  520.     return (r & 0x8) ? TRUE : FALSE;
  521.  
  522. }
  523.  
  524. This seems to work for the Modem Port, haven't tried Printer, but I
  525. guess
  526. it'd work.   So here's the questions
  527.  
  528. 1. Where is this documented? I'd like to understand it a bit better.
  529.  
  530. 2. What do I do for PCMCIA slots?
  531.  
  532.  
  533. Thanks in advance.
  534.  
  535. -- 
  536. - -------------------------------------------------
  537. Steve Collins                 snilloc@ix.netcom.com
  538. - -------------------------------------------------
  539.  
  540. +++++++++++++++++++++++++++
  541.  
  542. >From gherrick@stratos.net
  543. Date: Sat, 25 Jan 1997 06:42:16 -0600
  544. Organization: (none)
  545.  
  546. In article <32E8F206.8D8@ix.netcom.com>, snilloc@ix.netcom.com wrote:
  547.  
  548. > Hi, sorry if this is a FAQ, but...
  549. > How do I tell if a serial port is online?  I found some code
  550. > which depends on the SCC which looks something like:
  551. > I found some code that tells me if the "Modem Port" is online:
  552. > #define SCCRd                   (*(Ptr *)0x1D8)
  553. > // PORTNO is 1 for Modem Port, perhaps 2 for Printer Port?
  554. > Boolean IsOnLine()
  555. > {
  556. >         register Byte r;
  557. >         r = *(SCCRd + ((PORTNO == 2) ? 0 : 2)); /* SCC channel A/B control */
  558. >         r = *(SCCRd + 2);       /* SCC channel A/B control */ 
  559. >         
  560. >         return (r & 0x8) ? TRUE : FALSE;
  561. > }
  562. > This seems to work for the Modem Port, haven't tried Printer, but I
  563. > guess
  564. > it'd work.   So here's the questions
  565. > 1. Where is this documented? I'd like to understand it a bit better.
  566. > 2. What do I do for PCMCIA slots?
  567. > Thanks in advance.
  568. > -- 
  569. > ---------------------------------------------------
  570. > Steve Collins                 snilloc@ix.netcom.com
  571. > ---------------------------------------------------
  572.  
  573. 1. It's not, really. There's some info in some early issues of MacTech I think.
  574.  
  575. 2. I have no idea about that one. But you could try using SRsrcInfo in the
  576. Slot Manager. If that returns an error of -300 it means there's no card in
  577. the slot you specify. If you really want to get into it, though, I'd read
  578. the Slot Manager section of Inside Macintosh (or talk to someone who knows
  579. more about slots).
  580.  
  581. Even though there's not much documentation on the above thing. Here's what
  582. it means and also here's a better way to do it:
  583.  
  584. SCCrd is a low-memory global that stands for "SCC ReaD base address". It is
  585. the starting address for SCC. As "HS" points out, this is reading from
  586. hardware.
  587.  
  588. You should use a low-memory accessor to get to SCCrd. But since you use it
  589. to read directly from hardware anyway, you might not be too concerned about
  590. reading directly from low memory!
  591.  
  592. As long as you're using low-memory, here's an easier way that gives you
  593. both ports (without reading from hardware):
  594.  
  595. Check the byte at 0x01FB (SPConfig) using the low mem accessor:
  596.  
  597. LMGetSPConfig
  598. (defined as UInt8 LMGetSPConfig(void) in LowMem.h Universal Header)
  599.  
  600. the high 4 bits are for port A (modem) and the lower for for port B (printer).
  601. Here's what they mean:
  602. 0 = free
  603. 1 = used by AppleTalk
  604. 2 = used by another serial driver
  605.  
  606. So, here's what some code might look like:
  607.  
  608. Boolean modemPortInUse = false, printerPortInUse = false;
  609. Byte r = LMGetSPConfig();
  610.  
  611. if (r & 0xF0) modemPortInUse = true;
  612. if (r & 0x0F) printerPortInUse = true;
  613.  
  614. That's it unless you want to get more specific i.e.:
  615.  
  616. switch(r & 0x0F)
  617. {
  618.    case 0: // printerPort isn't being used
  619.       break;
  620.    case 1: // printerPort in use by apple talk
  621.       break;
  622.    case 2: // printerPort is being used by something else
  623.       break;
  624.    default: huh?
  625. }
  626.  
  627. If you want more info about the printer port, check out the byte at 0x0291
  628. (PortBUse). Bit 5 means it's being used by the XPP driver. Bit 7 once again
  629. says if it's currently in use at all (0 == in use), and the other bits I'm
  630. not sure about but bits 4,5,and 6 are used by various driver's at least
  631. (perhaps MPP and ATP?).
  632.  
  633. Anyway, if all you're wondering is if the two serial ports are being used
  634. by some driver, checking SPConfig should work okay.
  635.  
  636. Best,
  637.  
  638. Graham
  639. gherrick@stratos.net
  640.  
  641.  
  642. +++++++++++++++++++++++++++
  643.  
  644. >From harun@village.village.de (Harun Scheutzow)
  645. Date: Fri, 24 Jan 1997 23:50:13 GMT
  646. Organization: Village Tronic Marketing GmbH
  647.  
  648. This code checks the GPi input pin, connected to DCD of the SCC.
  649. But unfortunately,
  650. * not all Macs have this connection.
  651. * here are many cables in use without the neccessary wire to
  652. the modem
  653. * not all Macs allow direct access to SCC
  654. * conclusion: even if Modem is online, you may get "false".
  655.  
  656. This direct hardware access is ugly. It does not work on
  657. other serial ports (on cards etc).
  658.  
  659. But there is no free available documentation about a driver
  660. status call which should be introduced in the future to
  661. poll the status of this line. Using this at the moment
  662. probably non-existing status call would work on other serial
  663. ports in the future.
  664.  
  665. Sorry Apple, if there should be already such a doc, please
  666. tell me where it is.
  667.  
  668. Regards, HS
  669. <Opinions are my own>
  670.  
  671.  
  672. +++++++++++++++++++++++++++
  673.  
  674. >From Steve Collins <snilloc@ix.netcom.com>
  675. Date: Mon, 27 Jan 1997 12:10:12 -0800
  676. Organization: Netcom
  677.  
  678. Hi, Harun,
  679.  
  680. Harun Scheutzow wrote:
  681. > This code checks the GPi input pin, connected to DCD of the SCC.
  682. > But unfortunately,
  683. > * not all Macs have this connection.
  684. > * here are many cables in use without the neccessary wire to
  685. > the modem
  686. > * not all Macs allow direct access to SCC
  687. > * conclusion: even if Modem is online, you may get "false".
  688.  
  689. Actually, I don't think the standard Mac cable supports DCD
  690. (carrier detect) *ever*.  Hardware weenies, feel free to jump
  691. in and explain how this might be?  I do know that the code
  692. posted does in fact work on at lease *one* Mac.   
  693. > This direct hardware access is ugly. It does not work on
  694. > other serial ports (on cards etc).
  695. > But there is no free available documentation about a driver
  696. > status call which should be introduced in the future to
  697. > poll the status of this line. Using this at the moment
  698. > probably non-existing status call would work on other serial
  699. > ports in the future.
  700. > Sorry Apple, if there should be already such a doc, please
  701. > tell me where it is.
  702.  
  703. Of course, there must be a way to accomplish this, it is my 
  704. current holy grail.
  705.  
  706. Cheers
  707. -- 
  708. - -------------------------------------------------
  709. Steve Collins                 snilloc@ix.netcom.com
  710. - -------------------------------------------------
  711.  
  712. +++++++++++++++++++++++++++
  713.  
  714. >From harun@village.village.de (Harun Scheutzow)
  715. Date: Tue, 28 Jan 1997 23:26:59 GMT
  716. Organization: Village Tronic Marketing GmbH
  717.  
  718. Steve Collins (snilloc@ix.netcom.com) wrote:
  719.  
  720. : Actually, I don't think the standard Mac cable supports DCD
  721. : (carrier detect) *ever*. 
  722.  
  723. What is "the standard Mac cable"?
  724.  
  725. My personal impression is that Apple ignored the GPi for a long time.
  726. They even ignored (like some other large companies) the serial
  727. ports. That means the API is not good. And even "now" they do not
  728. really think about what they do: Adding the PBControl calls with
  729. the csCodes 115 and 230 for 115200 and 230400 bps was a worse
  730. idea. Do they like to add additional csCodes for every higher
  731. speed which might come in the future???
  732.  
  733. The normal way would have been one call, taking a bps-value as
  734. input (in a 32-bit variable, and not 16 bit!) and returning
  735. information about available bps-rates if the requested speed
  736. can not be provided. Some UNIX(-like) systems do it this way.
  737.  
  738. Regards, HS
  739.  
  740.  
  741. +++++++++++++++++++++++++++
  742.  
  743. >From Steve Collins <snilloc@ix.netcom.com>
  744. Date: Wed, 29 Jan 1997 09:20:48 -0800
  745. Organization: Netcom
  746.  
  747. Harun Scheutzow wrote:
  748. > Steve Collins (snilloc@ix.netcom.com) wrote:
  749. > : Actually, I don't think the standard Mac cable supports DCD
  750. > : (carrier detect) *ever*.
  751. > What is "the standard Mac cable"?
  752. OK, what I meant is explained in IM:Devices in their explanation of
  753. the RS-422 Serial Interface as used by "all" Macintoshes.
  754.  
  755. "Data Carrier Detect (DCD). The DCD signal is not used by Macintosh
  756. computers. In systems that use the signal, it is asserted by the DCE
  757. when a carrier signal is received."
  758.  
  759.  
  760.  
  761. Incidentally, I have *still* not found an answer to my original
  762. question, which is how to detect carrier signal while using the
  763. PC Card slots, if any one knows the answer.  The "Serial GPi 
  764. (General-Purpose Input)" method described in  TechNote DV-16
  765. works ok for the A and B ports, happily, unless as noted there,
  766. one is using a Mac Plus, etc.
  767.  
  768. Cheers
  769. -- 
  770. - -------------------------------------------------
  771. Steve Collins                 snilloc@ix.netcom.com
  772. - -------------------------------------------------
  773.  
  774. ---------------------------
  775.  
  776. >From "Don E. French" <dfrench@mcn.net>
  777. Subject: Faster line drawing routines?
  778. Date: Tue, 28 Jan 1997 23:01:33 -0700
  779. Organization: Montana Communications Network
  780.  
  781.     Just wondering if anyone has come up with a faster way to draw 
  782. lines, other that QuickDraw's lineto, moveto, ... etc.  Perhaps using the 
  783. pixmap directly?
  784.  
  785. Any code appreciated,
  786. Thanks in advance
  787.  
  788.  
  789.  
  790. +++++++++++++++++++++++++++
  791.  
  792. >From tandersen@siennasoft.com (Tom Andersen)
  793. Date: 29 Jan 1997 16:18:49 GMT
  794. Organization: Sienna Software
  795.  
  796. In article <Pine.BSD/.3.91.970128225823.5876B@dns.mcn.net>, "Don E.
  797. French" <dfrench@mcn.net> wrote:
  798.  
  799. >         Just wondering if anyone has come up with a faster way to draw 
  800. > lines, other that QuickDraw's lineto, moveto, ... etc.  Perhaps using the 
  801. > pixmap directly?
  802. > Any code appreciated,
  803. > Thanks in advance
  804.  
  805. You can draw lines faster than quickdraw if you want, but I found that
  806. quickdraw is pretty fast at lines that 
  807. a) are longer than say 30 or 40 pixels long, and
  808. b) actually have to be drawn. 
  809.  
  810. Quickdraw Lineto is slow compared to direct pixmap manipulation if you
  811. have to do many short lines. Also Quickdraw will take almost as long to
  812. draw a line that completely misses the screen as it will to actually draw
  813. a line of the same length on the screen.
  814.  
  815. I was able to speed things up a lot by doing my own clipping first, then
  816. only drawing what was necessary using LineTo.
  817.  
  818. -- 
  819. Tom Andersen
  820. Sienna Software
  821. www.siennasoft.com
  822. tandersen@siennasoft.com
  823. Makers of Starry Night for the Macintosh. 
  824.  
  825. +++++++++++++++++++++++++++
  826.  
  827. >From trickys@ix.netcom.com (Tricky S)
  828. Date: Wed, 29 Jan 1997 23:06:10 -0600
  829. Organization: Tricky S Software Factory
  830.  
  831. In the book 'Black Art of Macintosh Game Programming' by Kevin Tieskoetter
  832. there is very good coverage of Bresenham's Algorithm for fast line drawing
  833. (which is actually what LineTo() is based on) with implementations that
  834. are about 30% faster that QuickDraw's LineTo().
  835.  
  836. In article <Pine.BSD/.3.91.970128225823.5876B@dns.mcn.net>, "Don E.
  837. French" <dfrench@mcn.net> wrote:
  838.  
  839. >         Just wondering if anyone has come up with a faster way to draw 
  840. > lines, other that QuickDraw's lineto, moveto, ... etc.  Perhaps using the 
  841. > pixmap directly?
  842. > Any code appreciated,
  843. > Thanks in advance
  844.  
  845.  _____________
  846. \ ____________\
  847. ||  _________  | Stefan "Tricky S" Sinclair
  848. || /@--------\ | <mailto:trickys@ix.netcom.com>
  849. || |         | | <http://cse.unl.edu/~sinclair/SpriteFight/sf2k.html>
  850. || |         | | 
  851. || \_________/ | The label said "Requires Windows95
  852. ||       ____  | or better" so I bought a Mac.
  853. || o Mac       |
  854. \|_____________|
  855.  \|___________|
  856.  
  857. +++++++++++++++++++++++++++
  858.  
  859. >From David Matiskella <davidm@netscape.com>
  860. Date: Wed, 29 Jan 1997 22:09:39 -0800
  861. Organization: Another Netscape News Server User
  862.  
  863. Tricky S wrote:
  864. > In the book 'Black Art of Macintosh Game Programming' by Kevin Tieskoetter
  865. > there is very good coverage of Bresenham's Algorithm for fast line drawing
  866. > (which is actually what LineTo() is based on) with implementations that
  867. > are about 30% faster that QuickDraw's LineTo().
  868. > In article <Pine.BSD/.3.91.970128225823.5876B@dns.mcn.net>, "Don E.
  869. > French" <dfrench@mcn.net> wrote:
  870. > >         Just wondering if anyone has come up with a faster way to draw
  871. > > lines, other that QuickDraw's lineto, moveto, ... etc.  Perhaps using the
  872. > > pixmap directly?
  873. > >
  874. > > Any code appreciated,
  875. > > Thanks in advance
  876.  
  877.     If all you want is simpe 1 pixel wide lines there are a bunch of
  878. algorithms out there that are much faster than Bresenhams. Wether they
  879. are faster than quickdraw might be tough to measure. I know just about
  880. every VGA card has built in Accelerated line drawing. Assuming (yes a
  881. big assumption) that qd uses this hardware (ATI's cards for sure) you
  882. are going to have a real tough time being faster. Anyone else every
  883. wonder why Applethere own video chips rather than using ATI's, S3, or
  884. any of the other ones? A the cool would also gain pageflipping with less
  885. than 4 megs of ram:)
  886. David Matiskella
  887.  
  888. +++++++++++++++++++++++++++
  889.  
  890. >From numega@ultranet.ca (Scott Bassett)
  891. Date: 30 Jan 97 06:34:39 GMT
  892. Organization: Student
  893.  
  894. In article <Pine.BSD/.3.91.970128225823.5876B@dns.mcn.net>, "Don E.
  895. French" <dfrench@mcn.net> wrote:
  896.  
  897. >         Just wondering if anyone has come up with a faster way to draw 
  898. > lines, other that QuickDraw's lineto, moveto, ... etc.  Perhaps using the 
  899. > pixmap directly?
  900. > Any code appreciated,
  901. > Thanks in advance
  902.  
  903. Try buying the book Computer Graphics: Principles and Practice, you should
  904. find the midpoint line drawing algorithm in there, it's the same one as
  905. lineto's, but if you directly address the pixmap to plot the pixel you
  906. will usually get a 30% speed increase, but also you have to take care of
  907. clipping by yourself then.  And also, it is pretty difficult to understand
  908. the algorithm at first.  Hope this helps.
  909.  
  910. +++++++++++++++++++++++++++
  911.  
  912. >From Maf Vosburgh <maf@mmcorp.com>
  913. Date: 30 Jan 1997 16:59:04 GMT
  914. Organization: MultiMedia Corporation
  915.  
  916. In article <trickys-2901972306100001@lin-ne3-18.ix.netcom.com> Tricky S,
  917. trickys@ix.netcom.com writes:
  918. >In the book 'Black Art of Macintosh Game Programming' by Kevin Tieskoetter
  919. >there is very good coverage of Bresenham's Algorithm for fast line drawing
  920. >(which is actually what LineTo() is based on) with implementations that
  921. >are about 30% faster that QuickDraw's LineTo().
  922.  
  923. It is really easy to make the Bresenham line drawing code in this book go
  924. faster on PPC. Just make the "short" variables "int" or "long". 
  925.  
  926. BTW it's a great book.
  927.  
  928.  
  929. Maf
  930.  
  931. +++++++++++++++++++++++++++
  932.  
  933. >From Online@MacTech.com ( nick.c @MT )
  934. Date: Tue, 04 Feb 1997 13:24:16 -0800
  935. Organization: MacTech Magazine
  936.  
  937.  
  938.  
  939. Maf Vosburgh <maf@mmcorp.com> wrote:
  940.  
  941. >In article <trickys-2901972306100001@lin-ne3-18.ix.netcom.com> Tricky S,
  942. >trickys@ix.netcom.com writes:
  943. >>In the book 'Black Art of Macintosh Game Programming' by Kevin Tieskoetter
  944. >>there is very good coverage of Bresenham's Algorithm for fast line drawing
  945. >>(which is actually what LineTo() is based on) with implementations that
  946. >>are about 30% faster that QuickDraw's LineTo().
  947. >
  948. >It is really easy to make the Bresenham line drawing code in this book go
  949. >faster on PPC. Just make the "short" variables "int" or "long". 
  950.  
  951.  
  952.     Interesting.  Do you know how much this speeds up the
  953.       drawing?
  954.  
  955.     BTW, folks can make a quick $25 by sending in tips like 
  956.       this (with a few lines of example code) to <tips@mactech.com>.
  957.       The tips editor pays $25 a shot for each tip he uses,
  958.       and $50 for the best tip each month.  Easy pay for
  959.       few quick lines of eMail...
  960.  
  961.  
  962.  
  963.  
  964. ____Nicholas C. DeMello, Ph.D.___________________________________________
  965. "MacTech Online"--MacTech Magazine, for Mac OS Programmers and Developers
  966.      http://www.MacTech.com/
  967.                                         _/   _/  _/  _/_/_/   _/   _/  
  968.    Chemistry: Nick@chem.UCLA.edu       _/_/ _/  _/  _/   _/  _/_/_/ 
  969.      MacTech: Online@MacTech.com      _/ _/_/  _/  _/       _/ _/    
  970.         http://www.chem.ucla.edu/~nick/   _/  _/   _/_/_/  _/   _/     
  971.  
  972. ---------------------------
  973.  
  974. >From mmucker@airmail.net (Matthew Mucker)
  975. Subject: Floating palettes
  976. Date: Tue, 21 Jan 1997 18:19:09 +0500
  977. Organization: Internet America
  978.  
  979. How does one program them?
  980.  
  981. I'm sure there are references around, if someone could please point me in
  982. the right direction, I'd appreciate it.
  983.  
  984. Thanks,
  985.  
  986. -Matt
  987.  
  988. +++++++++++++++++++++++++++
  989.  
  990. >From bgray@macromedia.com (Brian Gray)
  991. Date: Thu, 23 Jan 1997 09:59:08 -0700
  992. Organization: Macromedia, Inc.
  993.  
  994. mmucker@airmail.net (Matthew Mucker) wrote:
  995.  
  996. > How does one program them?
  997.  
  998. There is an excellent description of how to do this and 6 pages of example
  999. source in "Mac Programming FAQs" published by IDG Books.  Generally
  1000. speaking, this book has the answer to just about anything that has to do
  1001. with Mac programming.
  1002.  
  1003.  -- B
  1004.  
  1005. +++++++++++++++++++++++++++
  1006.  
  1007. >From Steve Makohin <WaterEdgSW@aol.com>
  1008. Date: 23 Jan 1997 18:05:37 GMT
  1009. Organization: Water's Edge Software
  1010.  
  1011. In article <mmucker-2101971819090001@fw4-0.ppp.iadfw.net> Matthew Mucker,
  1012. mmucker@airmail.net writes:
  1013. >Subject: Floating palettes
  1014. >From: Matthew Mucker, mmucker@airmail.net
  1015. >Date: Tue, 21 Jan 1997 18:19:09 +0500
  1016. >>How does one program them?
  1017. >
  1018. >I'm sure there are references around, if someone could please point me in
  1019. >the right direction, I'd appreciate it.
  1020. >
  1021. >Thanks,
  1022.  
  1023. Check out the Infinity Windoid. Freeware, netbout, source included in C.
  1024.  
  1025. -Steve Makohin
  1026.  Water's Edge Software
  1027. (Makers of Tools Plus & SuperCDEFs)
  1028.  http://www.interlog.com/~wateredg
  1029.  
  1030. +++++++++++++++++++++++++++
  1031.  
  1032. >From Roger Wade <fantasys@macline.co.uk>
  1033. Date: Fri, 24 Jan 1997 23:44:13 +0000
  1034. Organization: Atlas Internet
  1035.  
  1036. Develop 15 Has excellent article of floating
  1037. windows
  1038.  
  1039. +++++++++++++++++++++++++++
  1040.  
  1041. >From jharvey@mail.airmail.net (James Harvey)
  1042. Date: Wed, 29 Jan 1997 23:28:42 -0600
  1043. Organization: Internet America
  1044.  
  1045. In article <mmucker-2101971819090001@fw4-0.ppp.iadfw.net>,
  1046. mmucker@airmail.net (Matthew Mucker) wrote:
  1047.  
  1048. >How does one program them?
  1049. >
  1050. >I'm sure there are references around, if someone could please point me in
  1051. >the right direction, I'd appreciate it.
  1052. >
  1053. >Thanks,
  1054. >
  1055. >-Matt
  1056.  
  1057. I'm surprised no one has mentioned using NewServiceWindow() as a means for
  1058. creating a floating palette.  This is documented in IM: Text.
  1059. There are a couple of problems with it , though.  It doesn't create a
  1060. color window unless you close its port and open a color port in its place
  1061. and window clicks may pass thru it into the next wndow unless you  ignore
  1062. them with a null event.  However these windows will *always*
  1063. stay in front  with no tricks until you close them.  I don't know how you
  1064. intend to use them but hope this helps.  BTW, Infinity Windoids
  1065. is not much help since the windoids created by it are already available by
  1066. the proper floatproc calls to the System ; ).  Someone please
  1067. correct me if I'm wrong.
  1068.  
  1069. Regards,
  1070. James
  1071.  
  1072. +++++++++++++++++++++++++++
  1073.  
  1074. >From scott@www.curtin.edu.au (Scott Kevill)
  1075. Date: 30 Jan 1997 06:46:38 GMT
  1076. Organization: Curtin University of Technology    
  1077.  
  1078. In article <jharvey-2901972328420001@news.iadfw.net>,
  1079. jharvey@mail.airmail.net (James Harvey) wrote:
  1080.  
  1081. :In article <mmucker-2101971819090001@fw4-0.ppp.iadfw.net>,
  1082. :mmucker@airmail.net (Matthew Mucker) wrote:
  1083. :
  1084. :>How does one program them?
  1085. :>
  1086. :>I'm sure there are references around, if someone could please point me in
  1087. :>the right direction, I'd appreciate it.
  1088. :>
  1089. :>Thanks,
  1090. :>
  1091. :>-Matt
  1092. :
  1093. :I'm surprised no one has mentioned using NewServiceWindow() as a means for
  1094. :creating a floating palette.  This is documented in IM: Text.
  1095. :There are a couple of problems with it , though.  It doesn't create a
  1096. :color window unless you close its port and open a color port in its place
  1097. :and window clicks may pass thru it into the next wndow unless you  ignore
  1098. :them with a null event.  However these windows will *always*
  1099. :stay in front  with no tricks until you close them.  I don't know how you
  1100. :intend to use them but hope this helps.  BTW, Infinity Windoids
  1101. :is not much help since the windoids created by it are already available by
  1102. :the proper floatproc calls to the System ; ).  Someone please
  1103. :correct me if I'm wrong.
  1104.  
  1105. Noone has mentioned these because they are a bad idea for applications
  1106. since they will *always* stay in front. Sure you can hide and show them
  1107. when your application suspends and resumes, but what about alerts and
  1108. modal dialogues that appear - ones that the application does not know
  1109. about (eg. notifications). What happens if a floating palette happens to
  1110. cover an alert so that you can't see what it says? As said above you need
  1111. to hack to get a colour port. You need to write a gnarly GNE Filter and
  1112. worry about A5 worlds and the current heap zone to even get mouse clicks
  1113. for the palette. The GNE filter will sometimes miss clicks altogether
  1114. unless you have a system patch. You have to continually check the update
  1115. regions of the palettes since you will not get update evens. You need to
  1116. create a termination proc or an ExitToShell patch in case your app crashes
  1117. or gets a force-quit since the windows will be left up and can cause
  1118. crashes when the mouse moves over them. There are problems setting the
  1119. cursor when the mouse is over a TSM window.
  1120.  
  1121. Is this enough? I'm sure there are more bad reasons. It is less work (and
  1122. more compatible) to do it yourself the standard way.
  1123.  
  1124. I believe the system floating windoid is only present in MacOS 7.5 and
  1125. later. So you may still need something like Infinity Windoid.
  1126.  
  1127. Cheers,
  1128.  
  1129. Scott
  1130.  
  1131. Scott Kevill
  1132. scott@www.curtin.edu.au
  1133.  
  1134. :Regards,
  1135. :James
  1136.  
  1137. ---------------------------
  1138.  
  1139. >From Philipp Krueckel <Krueckel@reze-1.rz.rwth-aachen.de>
  1140. Subject: Is LINUX available for Macintosh?
  1141. Date: Wed, 22 Jan 1997 20:42:24 +0100
  1142. Organization: University of Technology, Aachen, Germany
  1143.  
  1144. I want to use UNIX software on my Mac.
  1145. Is there a version of Linux for Macintosh?
  1146.  
  1147. Philipp
  1148.  
  1149. -- 
  1150.  
  1151. Philipp Krueckel                                 \\://     
  1152. University of Technology Aachen, Germany         (o o)        
  1153. Krueckel@reze-1.rz.rwth-aachen.de          ---ooO-(_)-Ooo---
  1154.  
  1155. +++++++++++++++++++++++++++
  1156.  
  1157. >From jude@smellycat.com (Jude Giampaolo)
  1158. Date: Wed, 22 Jan 1997 15:48:32 -0500
  1159. Organization: CyberDrugs
  1160.  
  1161. In article <32E66DA0.2ACA@reze-1.rz.rwth-aachen.de>, Philipp Krueckel
  1162. <Krueckel@reze-1.rz.rwth-aachen.de> wrote:
  1163.  
  1164. > I want to use UNIX software on my Mac.
  1165. > Is there a version of Linux for Macintosh?
  1166.  
  1167. http://www.mklinux.apple.com/
  1168.  
  1169. -- 
  1170. Jude Charles Giampaolo        'I was lined up for glory, but the
  1171. jcg161@psu.edu                    tickets sold out in advance'
  1172. jude@smellycat.com      http://prozac.cwru.edu/jude/JudeHome.html
  1173.  
  1174. +++++++++++++++++++++++++++
  1175.  
  1176. >From mikemu@macconnect.com (Michael Murry)
  1177. Date: Thu, 23 Jan 1997 15:41:10 -0600
  1178. Organization: Gridnet News Service
  1179.  
  1180. In article <32E66DA0.2ACA@reze-1.rz.rwth-aachen.de>, Philipp Krueckel
  1181. <Krueckel@reze-1.rz.rwth-aachen.de> wrote:
  1182.  
  1183. > I want to use UNIX software on my Mac.
  1184. > Is there a version of Linux for Macintosh?
  1185. > Philipp
  1186. > -- 
  1187. > Philipp Krueckel                                 \\://     
  1188. > University of Technology Aachen, Germany         (o o)        
  1189. > Krueckel@reze-1.rz.rwth-aachen.de          ---ooO-(_)-Ooo---
  1190.  
  1191. Yes there is. It only runs on PowerMacs. See http://www.mklinux.apple.com/
  1192.  
  1193. +++++++++++++++++++++++++++
  1194.  
  1195. >From cutts@ukraine.corp.mot.com (Kevin M. Cutts)
  1196. Date: Thu, 23 Jan 1997 13:05:54 -0600
  1197. Organization: Motorola
  1198.  
  1199. In article <32E66DA0.2ACA@reze-1.rz.rwth-aachen.de>, Philipp Krueckel
  1200. <Krueckel@reze-1.rz.rwth-aachen.de> wrote:
  1201.  
  1202. > I want to use UNIX software on my Mac.
  1203. > Is there a version of Linux for Macintosh?
  1204. There are currently two ports of linux to the mac. Try
  1205. www.mklinux.apple.com for apples current version of linux. I'm running that
  1206. and its pretty cool. In addition there is another version but I don't have
  1207. the web site handy. (Its linked from the apple site.) 
  1208. Good luck...
  1209.  
  1210. +++++++++++++++++++++++++++
  1211.  
  1212. >From smfr@santafe.edu (Simon Fraser)
  1213. Date: Thu, 23 Jan 1997 16:18:36 -0700
  1214. Organization: Santa Fe Institute
  1215.  
  1216. In article <cutts-ya023580002301971305540001@129.188.137.103>,
  1217. cutts@ukraine.corp.mot.com (Kevin M. Cutts) wrote:
  1218.  
  1219. : In article <32E66DA0.2ACA@reze-1.rz.rwth-aachen.de>, Philipp Krueckel
  1220. : <Krueckel@reze-1.rz.rwth-aachen.de> wrote:
  1221. : > I want to use UNIX software on my Mac.
  1222. : > Is there a version of Linux for Macintosh?
  1223. : > 
  1224. : There are currently two ports of linux to the mac. Try
  1225. : www.mklinux.apple.com for apples current version of linux. I'm running that
  1226. : and its pretty cool. In addition there is another version but I don't have
  1227. : the web site handy. (Its linked from the apple site.) 
  1228.  
  1229. http://www.cs.wisc.edu/~tesch/linux_info/
  1230.  
  1231. Simon
  1232.  
  1233. +++++++++++++++++++++++++++
  1234.  
  1235. >From jchan@apk.net (Jerome Chan)
  1236. Date: Sat, 25 Jan 1997 19:20:28 -0500
  1237. Organization: TofuSoftÅ
  1238.  
  1239. In article <smfr-2301971618360001@simon.santafe.edu>, smfr@santafe.edu
  1240. (Simon Fraser) wrote:
  1241.  
  1242. > In article <cutts-ya023580002301971305540001@129.188.137.103>,
  1243. > cutts@ukraine.corp.mot.com (Kevin M. Cutts) wrote:
  1244. > : In article <32E66DA0.2ACA@reze-1.rz.rwth-aachen.de>, Philipp Krueckel
  1245. > : <Krueckel@reze-1.rz.rwth-aachen.de> wrote:
  1246. > : 
  1247. > : > I want to use UNIX software on my Mac.
  1248. > : > Is there a version of Linux for Macintosh?
  1249. > : > 
  1250. > : There are currently two ports of linux to the mac. Try
  1251. > : www.mklinux.apple.com for apples current version of linux. I'm running that
  1252. > : and its pretty cool. In addition there is another version but I don't have
  1253. > : the web site handy. (Its linked from the apple site.) 
  1254. > http://www.cs.wisc.edu/~tesch/linux_info/
  1255. > Simon
  1256.  
  1257. For non-ppc machines, you can use netbsd.
  1258. <http://www.netbsd.org/Releases/formal-1.2/mac68k.html>
  1259.  
  1260. - -
  1261.  The Evil Tofu (Only Human)
  1262.  
  1263. +++++++++++++++++++++++++++
  1264.  
  1265. >From me@kaaos.org (Me)
  1266. Date: 28 Jan 1997 23:20:35 GMT
  1267. Organization: Kaaos
  1268.  
  1269. In article <jchan-ya023580002501971920280001@news.apk.net>, jchan@apk.net
  1270. (Jerome Chan) wrote:
  1271.  
  1272. > In article <smfr-2301971618360001@simon.santafe.edu>, smfr@santafe.edu
  1273. > (Simon Fraser) wrote:
  1274. > > In article <cutts-ya023580002301971305540001@129.188.137.103>,
  1275. > > cutts@ukraine.corp.mot.com (Kevin M. Cutts) wrote:
  1276. > > 
  1277. > > : In article <32E66DA0.2ACA@reze-1.rz.rwth-aachen.de>, Philipp Krueckel
  1278. > > : <Krueckel@reze-1.rz.rwth-aachen.de> wrote:
  1279. > > : 
  1280. > > : > I want to use UNIX software on my Mac.
  1281. > > : > Is there a version of Linux for Macintosh?
  1282. > > : > 
  1283. > > : There are currently two ports of linux to the mac. Try
  1284. > > : www.mklinux.apple.com for apples current version of linux. I'm
  1285. running that
  1286. > > : and its pretty cool. In addition there is another version but I don't have
  1287. > > : the web site handy. (Its linked from the apple site.) 
  1288. > > 
  1289. > > http://www.cs.wisc.edu/~tesch/linux_info/
  1290. > > 
  1291. > > Simon
  1292. > For non-ppc machines, you can use netbsd.
  1293. > <http://www.netbsd.org/Releases/formal-1.2/mac68k.html>
  1294.    Yeah, but don't work on Quadras and/or IIfxen...:(
  1295. > ---
  1296. >  The Evil Tofu (Only Human)
  1297.  
  1298. ---------------------------
  1299.  
  1300. >From Dravida_Bock@Brown.edu (Davi Bock)
  1301. Subject: Is palette animation w- > 256 colors possible?
  1302. Date: 31 Jan 1997 16:50:00 GMT
  1303. Organization: Brown University
  1304.  
  1305. Is it possible to do palette animation in 16 or 24-bit environments?
  1306.  
  1307. My understanding is:
  1308.    ÄPixels in 8-bit color contain references to color tables, and that
  1309. when you do palette animation, you're really messing with these color
  1310. tables.
  1311.    ÄPixels at greater depths each contain the actual color they depict,
  1312. rather than an index into a clut, so there's just nothing to animate.
  1313.  
  1314. Is there any way to work around this?  I would really like to experiment
  1315. with palette animation at greater color depths.
  1316.  
  1317. Any help would be greatly appreciated.
  1318.  
  1319. --Davi Bock
  1320.   Dravida_Bock@Brown.edu
  1321.  
  1322. +++++++++++++++++++++++++++
  1323.  
  1324. >From harun@village.village.de (Harun Scheutzow)
  1325. Date: Sun, 2 Feb 1997 20:07:19 GMT
  1326. Organization: Village Tronic
  1327.  
  1328. In article
  1329. <Dravida_Bock-3101971150060001@scili-clstr-180.library.brown.edu>,
  1330. Dravida_Bock@Brown.edu (Davi Bock) wrote:
  1331.  
  1332. >    ÄPixels at greater depths each contain the actual color they depict,
  1333. > rather than an index into a clut, so there's just nothing to animate.
  1334.  
  1335. On many display hardwares, every color component of such a pixel, that means
  1336. Red, Green and Blue, is independently taken to look up in a conversion
  1337. table for Red, for Green, and for Blue.
  1338.  
  1339. You may change the intensity of each color, but you may not convert a red
  1340. pixel into a blue one, by doing palette changes (unless you use only
  1341. specially prepared pixels: assume R=20, G=0, B=10. At index 20 for Red
  1342. there is "Full Red", at index 0 for Green there is "No Green", at index 10
  1343. for Blue there is "No Blue". Now you change the value at Red-index 20 to
  1344. "No Red", at Blue-index 10 to "Full Blue". This would convert a Red to a
  1345. Blue pixel. But it would change the appearance of all pixels which have
  1346. R=20 or(/and) B=10.
  1347.  
  1348. Regards, HS
  1349. <Opinions are my own>
  1350.  
  1351. +++++++++++++++++++++++++++
  1352.  
  1353. >From Dravida_Bock@Brown.edu (Davi Bock)
  1354. Date: Mon, 03 Feb 1997 12:49:20 -0400
  1355. Organization: Brown University
  1356.  
  1357. In article <harun-0202972100030001@village.village.de>,
  1358. harun@village.village.de (Harun Scheutzow) wrote:
  1359.  
  1360. > On many display hardwares, every color component of such a pixel, that means
  1361. > Red, Green and Blue, is independently taken to look up in a conversion
  1362. > table for Red, for Green, and for Blue.
  1363. > You may change the intensity of each color, but you may not convert a red
  1364. > pixel into a blue one, by doing palette changes (unless you use only
  1365. > specially prepared pixels [rest of example deleted]
  1366.  
  1367. Thanks very much for your reply.  
  1368.  
  1369. Do you know of any resources I could pursue to find out more about this? 
  1370. Inside Mac is pretty sparse on the organization of graphics devices.  How
  1371. do I tell if a graphics device uses this kind of mapping?  How do I get in
  1372. and change this mapping to produce on-screen color changes?
  1373.  
  1374. I would greatly appreciate any further help.
  1375.  
  1376. --Davi Bock
  1377.   Dravida_Bock@Brown.edu
  1378.  
  1379. +++++++++++++++++++++++++++
  1380.  
  1381. >From harun@village.village.de (Harun Scheutzow)
  1382. Date: Tue, 4 Feb 1997 15:18:58 GMT
  1383. Organization: Village Tronic
  1384.  
  1385. Designing PCI Cards & Drivers includes a description of the Display Device
  1386. Driver API.
  1387.  
  1388. Regards, HS
  1389. <Opinions are my own>
  1390.  
  1391. ---------------------------
  1392.  
  1393. >From Darrin McCarthy <dmc@ptc.com>
  1394. Subject: Need INIT source code
  1395. Date: Sun, 02 Feb 1997 14:09:08 -0500
  1396. Organization: Parametric Technology Corporation
  1397.  
  1398. Hello!
  1399.  
  1400. Does anyone know of a simple INIT example (with source code) that will
  1401. work on a PPC machine? I tried hacking the AFI INIT in Dave Mark's Mac C
  1402. Primer (Vol II) but it is for a 68K machine and uses calls specific to
  1403. THINK C (like CallPascal()). Thanks in advance!
  1404.  
  1405. --dmc
  1406.  
  1407. -- 
  1408. Darrin McCarthy
  1409.  
  1410. +++++++++++++++++++++++++++
  1411.  
  1412. >From blob@ricochet.NOSPAM.net
  1413. Date: Sun, 02 Feb 1997 12:51:22 -0800
  1414. Organization: (none)
  1415.  
  1416. In article <32F4E654.7566@ptc.com>, Darrin McCarthy <dmc@ptc.com> wrote:
  1417.  
  1418. > Does anyone know of a simple INIT example (with source code) that will
  1419. > work on a PPC machine? 
  1420.  
  1421. There are a large variety of such at the URL <http://www.machack.com>
  1422.  
  1423. -- 
  1424. (Pointers to other Mac programming web sites at
  1425. <http://devworld.apple.com/dev/geeks.html>)
  1426.  
  1427. To reply personally, remove the anti-spam "NOSPAM." from the email address
  1428. in the header.
  1429.  
  1430. +++++++++++++++++++++++++++
  1431.  
  1432. >From bc@apple.com (bill coderre)
  1433. Date: Mon, 03 Feb 1997 12:40:52 -0800
  1434. Organization: This posting does not represent the official opinion of Apple Computer, Inc.
  1435.  
  1436. In article <32F4E654.7566@ptc.com>, Darrin McCarthy <dmc@ptc.com> wrote:
  1437.  
  1438. |   Hello!
  1439. |   
  1440. |   Does anyone know of a simple INIT example (with source code) that will
  1441. |   work on a PPC machine? I tried hacking the AFI INIT in Dave Mark's Mac C
  1442. |   Primer (Vol II) but it is for a 68K machine and uses calls specific to
  1443. |   THINK C (like CallPascal()). Thanks in advance!
  1444. |   
  1445. |   --dmc
  1446. |   
  1447. |   -- 
  1448. |   Darrin McCarthy
  1449.  
  1450. Dave Mark's Ultimate Mac Programming Book has a whole chapter on INITs.
  1451. Very recommended.
  1452. -- 
  1453. This posting in no way represents the official opinion of Apple Computer,
  1454. Inc. Contact me at bc@wetware.com or bc@apple.com to discuss my personal
  1455. opinions and those of Apple Computer, Inc. Have A Nice Day.
  1456.  
  1457. +++++++++++++++++++++++++++
  1458.  
  1459. >From don_arb@wolfenet.com (Don Arbow)
  1460. Date: Mon, 03 Feb 1997 12:41:38 -0800
  1461. Organization: Wolfe Internet Access, L.L.C.
  1462.  
  1463. In article <32F4E654.7566@ptc.com>, Darrin McCarthy <dmc@ptc.com> wrote:
  1464.  
  1465. :  Hello!
  1466. :  
  1467. :  Does anyone know of a simple INIT example (with source code) that will
  1468. :  work on a PPC machine? I tried hacking the AFI INIT in Dave Mark's Mac C
  1469. :  Primer (Vol II) but it is for a 68K machine and uses calls specific to
  1470. :  THINK C (like CallPascal()). Thanks in advance!
  1471. :  
  1472.  
  1473. Take a look in the Mac archives for Extension Shell.  This is a complete
  1474. INIT shell, all of the code you need is there.  You just need to add the
  1475. specific code for your INIT.  You can read about it on the author's home
  1476. page at:
  1477.  
  1478. http://www.kagi.com/authors/dair/purpleshark.html
  1479.  
  1480. Don
  1481.  
  1482. -- 
  1483. - ------------------------------------------------------------------------
  1484.     \ | /    Don Arbow, Partner, CTO |  don_arb@wolfenet.com
  1485.   -- EDO --  EveryDay Objects, Inc.  |     ^ delete underscore
  1486.     / | \    Seattle, WA             |   http://www.edo-inc.com
  1487. - ------------------------------------------------------------------------
  1488.   My Prographing web page:   http://www.wolfe.net/~donarb/Dataflow.html
  1489.         "The fix is only temporary, unless it works" - Red Green
  1490. - ------------------------------------------------------------------------
  1491.  
  1492. +++++++++++++++++++++++++++
  1493.  
  1494. >From Online@MacTech.com ( nick.c @MT )
  1495. Date: Tue, 04 Feb 1997 21:01:06 -0800
  1496. Organization: MacTech Magazine
  1497.  
  1498.  
  1499.  
  1500. bc@apple.com (bill coderre) wrote:
  1501.  
  1502.  
  1503. >Dave Mark's Ultimate Mac Programming Book has a whole chapter on INITs.
  1504. >Very recommended.
  1505.  
  1506.  
  1507.     Second that recommendation:
  1508.  
  1509.     _The Ultimate Mac Programming Book: Methods of the Macintosh Masters_
  1510.     by Dave Mark,  Programmers Press/IDG Books, 1994 ISBN: 1-56884-275-5
  1511.  
  1512.  
  1513.  
  1514.     Also, check out Zobkiw's book, which is specifically about code
  1515.      fragments such as inits:
  1516.  
  1517.     _A Fragment of Your Imagination_ by Joe Zobkiw 
  1518.     Addison Wesley, 1995 ISBN: 0-201-48358-0  $40
  1519.  
  1520.  
  1521.  
  1522.  
  1523. ____Nicholas C. DeMello, Ph.D.___________________________________________
  1524. "MacTech Online"--MacTech Magazine, for Mac OS Programmers and Developers
  1525.      http://www.MacTech.com/
  1526.                                         _/   _/  _/  _/_/_/   _/   _/  
  1527.    Chemistry: Nick@chem.UCLA.edu       _/_/ _/  _/  _/   _/  _/_/_/ 
  1528.      MacTech: Online@MacTech.com      _/ _/_/  _/  _/       _/ _/    
  1529.         http://www.chem.ucla.edu/~nick/   _/  _/   _/_/_/  _/   _/     
  1530.  
  1531. ---------------------------
  1532.  
  1533. >From achow@ucsd.edu (Alexander Chow)
  1534. Subject: Objective C
  1535. Date: Thu, 16 Jan 1997 14:23:27 -0700
  1536. Organization: The University of California at San Diego
  1537.  
  1538. Though I am sure that somebody has prior to me posted something about
  1539. this, what exactly is Objective C, versus C or C++?
  1540.  
  1541. - ---------------------------- Ä ------------------------------
  1542.                 Alexander Chow Ä achow@ucsd.edu
  1543.          -- PGP Public Key available upon request --
  1544. - ---------------------------- Ä ------------------------------
  1545.  
  1546. +++++++++++++++++++++++++++
  1547.  
  1548. >From online@mactech.com (nick.c)
  1549. Date: Mon, 20 Jan 1997 19:46:01 -0800
  1550. Organization: MacTech Magazine
  1551.  
  1552.  
  1553.  
  1554. achow@ucsd.edu (Alexander Chow) wrote:
  1555.  
  1556. >Though I am sure that somebody has prior to me posted something about
  1557. >this, what exactly is Objective C, versus C or C++?
  1558.  
  1559.  
  1560. 1   What is Objective-C?
  1561.  
  1562.     Objective-C is an object oriented computer programming language.  It is
  1563.     a superset of ANSI C and provides classes and message passing similar to
  1564.     Smalltalk.
  1565.  
  1566.                          (from the comp.lang.objective-c FAQ)
  1567.  
  1568.          see also:
  1569.  
  1570.                    <news:comp.lang.objective-c> 
  1571.  
  1572.                           and
  1573.  
  1574.          <http://web.xplain.com/mactech.com/magazine/urls/next.html>
  1575.  
  1576. ____Nicholas C. DeMello, Ph.D.________________________________________
  1577.  
  1578.    Online at MacTech Magazine, the Journal of Macintosh Programming
  1579.      http://www.MacTech.com/
  1580.                                        _/   _/  _/  _/_/_/   _/   _/  
  1581.   Chemistry: Nick@chem.UCLA.edu       _/_/ _/  _/  _/   _/  _/_/_/ 
  1582.     MacTech: Online@MacTech.com      _/ _/_/  _/  _/       _/ _/    
  1583.        http://www.chem.ucla.edu/~nick/   _/  _/   _/_/_/  _/   _/     
  1584.  
  1585.  
  1586. +++++++++++++++++++++++++++
  1587.  
  1588. >From Zeppenwolf@Opion.com (Zeppenwolf)
  1589. Date: Tue, 21 Jan 1997 11:52:34 -0700
  1590. Organization: http://Opion.com
  1591.  
  1592.  
  1593. > 1   What is Objective-C?
  1594. >     Objective-C is an object oriented computer programming language.  It is
  1595. >     a superset of ANSI C and provides classes and message passing similar to
  1596. >     Smalltalk.
  1597.  
  1598.    Nuts, man.
  1599.  
  1600.    Without wading through the entire documentation that explains about
  1601. 'classes' and 'objects', can someone cut to the chase for us and give us
  1602. in a nutshell exactly what makes Obj-C DIFFERENT/BETTER/CRAPPER than C++?
  1603.  
  1604. Z
  1605.  
  1606. +++++++++++++++++++++++++++
  1607.  
  1608. >From drbenway@accessus.net (Dr. Benway)
  1609. Date: Tue, 21 Jan 1997 19:55:44 -0600
  1610. Organization: Interzone
  1611.  
  1612. In article <Zeppenwolf-2101971152340001@207.67.197.77>,
  1613. Zeppenwolf@Opion.com (Zeppenwolf) wrote:
  1614.  
  1615. > > 1   What is Objective-C?
  1616. > > 
  1617. > >     Objective-C is an object oriented computer programming language.  It is
  1618. > >     a superset of ANSI C and provides classes and message passing similar to
  1619. > >     Smalltalk.
  1620. >    Nuts, man.
  1621. >    Without wading through the entire documentation that explains about
  1622. > 'classes' and 'objects', can someone cut to the chase for us and give us
  1623. > in a nutshell exactly what makes Obj-C DIFFERENT/BETTER/CRAPPER than C++?
  1624.  
  1625. Well, for one thing, Objective-C programs don't look like they're written
  1626. in a language planted in the brains of abductees by malevolent aliens.
  1627.  
  1628. In other words, IMHO, the syntax of Objective-C is much cleaner...
  1629.  
  1630. Doc
  1631.  
  1632. -- 
  1633. Dr. Benway .................. Interzone
  1634. =======================================
  1635. *      And you may ask yourself:      *
  1636. *         How do I work this?         *
  1637. =======================================
  1638. *        drbenway@accessus.net        *
  1639. * http://www.cu-online.com/~browning/ *
  1640. =======================================
  1641.  
  1642. +++++++++++++++++++++++++++
  1643.  
  1644. >From "Thomas L. Ferrell" <f44@ornl.NoSpam.gov>
  1645. Date: 26 Jan 1997 17:23:37 GMT
  1646. Organization: Oak Ridge National Lab
  1647.  
  1648. drbenway@accessus.net (Dr. Benway) wrote:
  1649. >In article <Zeppenwolf-2101971152340001@207.67.197.77>,
  1650. >Zeppenwolf@Opion.com (Zeppenwolf) wrote:
  1651. >
  1652. >> > 1   What is Objective-C?
  1653. >> > 
  1654. >> >     Objective-C is an object oriented computer programming language.  It is
  1655. >> >     a superset of ANSI C and provides classes and message passing similar to
  1656. >> >     Smalltalk.
  1657. >> 
  1658. >>    Nuts, man.
  1659. >> 
  1660. >>    Without wading through the entire documentation that explains about
  1661. >> 'classes' and 'objects', can someone cut to the chase for us and give us
  1662. >> in a nutshell exactly what makes Obj-C DIFFERENT/BETTER/CRAPPER than C++?
  1663. >
  1664. >Well, for one thing, Objective-C programs don't look like they're written
  1665. >in a language planted in the brains of abductees by malevolent aliens.
  1666. >
  1667. >In other words, IMHO, the syntax of Objective-C is much cleaner...
  1668. >
  1669. >Doc
  1670. >
  1671. >-- 
  1672. >Dr. Benway .................. Interzone
  1673. >=======================================
  1674. >*      And you may ask yourself:      *
  1675. >*         How do I work this?         *
  1676. >=======================================
  1677. >*        drbenway@accessus.net        *
  1678. >* http://www.cu-online.com/~browning/ *
  1679. >=======================================
  1680.  
  1681. Another point is that Obj-C lacks multiple inheritance, although there are commands that circumvent this.
  1682. tom
  1683.  
  1684. Delete NoSpam in above address to reply.
  1685.  
  1686.  
  1687.  
  1688. +++++++++++++++++++++++++++
  1689.  
  1690. >From Bob Foster <bobfoster@worldnet.att.net>
  1691. Date: Fri, 31 Jan 1997 23:40:05 +0000
  1692. Organization: Symantec Corp.
  1693.  
  1694. Dr. Benway wrote:
  1695. > In article <Zeppenwolf-2101971152340001@207.67.197.77>,
  1696. > Zeppenwolf@Opion.com (Zeppenwolf) wrote:
  1697. > > > 1   What is Objective-C?
  1698. > > >
  1699. > > >     Objective-C is an object oriented computer programming language.  It is
  1700. > > >     a superset of ANSI C and provides classes and message passing similar to
  1701. > > >     Smalltalk.
  1702. > >
  1703. > >    Nuts, man.
  1704. > >
  1705. > >    Without wading through the entire documentation that explains about
  1706. > > 'classes' and 'objects', can someone cut to the chase for us and give us
  1707. > > in a nutshell exactly what makes Obj-C DIFFERENT/BETTER/CRAPPER than C++?
  1708. > Well, for one thing, Objective-C programs don't look like they're written
  1709. > in a language planted in the brains of abductees by malevolent aliens.
  1710. > In other words, IMHO, the syntax of Objective-C is much cleaner...
  1711.  
  1712. Cleaner if you like writing Smalltalk. Objective-C is a language
  1713. hybrid/mutant.
  1714.  
  1715. Bob
  1716.  
  1717. +++++++++++++++++++++++++++
  1718.  
  1719. >From tinman@corridor.net (Dave Newman)
  1720. Date: Sat, 01 Feb 1997 13:58:17 -0600
  1721. Organization: CRL Network Services
  1722.  
  1723. rfoster@symantec.com wrote:
  1724. >
  1725. > Dr. Benway wrote:
  1726. > > 
  1727. > > Well, for one thing, Objective-C programs don't look like they're written
  1728. > > in a language planted in the brains of abductees by malevolent aliens.
  1729. > > 
  1730. > > In other words, IMHO, the syntax of Objective-C is much cleaner...
  1731. > Cleaner if you like writing Smalltalk. Objective-C is a language
  1732. > hybrid/mutant.
  1733.  
  1734. All languages borrow concepts from the langauages that preceeded them and
  1735. research into languages that were ongoing at the time. Objective-C is no
  1736. more a hybrid/mutant than any other programming language.
  1737.  
  1738. Better to say that Objective-C takes an approach towards Object Oriented
  1739. programming that is different from C++. Objective-C had two goals in mind.
  1740. Increase in the complexity of the language syntax only minimally and
  1741. support runtime binding of classes and operations instead of compile time
  1742. binding.
  1743.  
  1744. --Dave
  1745. -- 
  1746. Dave Newman
  1747. tinman@corridor.net
  1748.  
  1749. +++++++++++++++++++++++++++
  1750.  
  1751. >From "Jonathan W. Hendry" <jon@subsequent.com>
  1752. Date: Sat, 01 Feb 1997 16:21:39 -0500
  1753. Organization: By Displacement in Metric Tonnes.
  1754.  
  1755. Bob Foster wrote:
  1756. > Dr. Benway wrote:
  1757.  
  1758. > > Well, for one thing, Objective-C programs don't look like they're written
  1759. > > in a language planted in the brains of abductees by malevolent aliens.
  1760. > >
  1761. > > In other words, IMHO, the syntax of Objective-C is much cleaner...
  1762. > Cleaner if you like writing Smalltalk. Objective-C is a language
  1763. > hybrid/mutant.
  1764. > Bob
  1765.  
  1766. If Objective-C is a hybrid, then C++ must be a cancer. ;)
  1767.  
  1768. -- 
  1769.        "Liar. Liar. Liar. Liar. Liar. Hateful liar. That's what she
  1770.        is." - ELLIOT J. ABELSON 
  1771.        A Los Angeles lawyer who represents Scientology speaking
  1772.               about the Pinellas-Pasco medical examiner
  1773.  
  1774. +++++++++++++++++++++++++++
  1775.  
  1776. >From woody@alumni.caltech.edu (William Edward Woody)
  1777. Date: Sat, 01 Feb 1997 13:59:07 -0800
  1778. Organization: In Phase Consulting
  1779.  
  1780. In article tinman@corridor.net (Dave Newman) wrote:
  1781. > Better to say that Objective-C takes an approach towards Object Oriented
  1782. > programming that is different from C++. Objective-C had two goals in mind.
  1783. > Increase in the complexity of the language syntax only minimally and
  1784. > support runtime binding of classes and operations instead of compile time
  1785. > binding.
  1786.  
  1787. [thread delurk]
  1788.  
  1789. The runtime binding of classes is independant of syntax. Which makes
  1790. a 'Direct to Objective C' solution possible (a 'la Direct To SOM, where 
  1791. you write code using a subset of the C++ syntax and get runtime binding
  1792. out the back-end).
  1793.  
  1794. Which hopefully for those of us who don't care for method calls that
  1795. look like complex and misform array lookups happier...
  1796.  
  1797.                                                 - Bill
  1798.  
  1799. -- 
  1800. William Edward Woody - In Phase Consulting - woody@alumni.caltech.edu
  1801.                  http://www.alumni.caltech.edu/~woody
  1802.  
  1803. ---------------------------
  1804.  
  1805. >From Thomas Okken <tho@worldaccess.nl>
  1806. Subject: Registering app signatures and file types
  1807. Date: Sun, 26 Jan 1997 12:19:17 +0100
  1808. Organization: World Access, Internet, E-mail and Videotex
  1809.  
  1810. Hi all,
  1811.  
  1812. I have just written a little program that I would like to publish, but
  1813. from long ago I remember that you should register your application
  1814. signature and its file types first (to avoid conflicts with other apps).
  1815. I've been away from Mac development for a while and I don't remember
  1816. the e-mail address I used for this, back then.
  1817. Please, could someone give me the e-mail address or URL or whatever it
  1818. is one uses these days?
  1819. Thanks in advance!
  1820.  
  1821.  - Thomas.
  1822.  
  1823. +++++++++++++++++++++++++++
  1824.  
  1825. >From jwwalker@kagi.com (James W. Walker)
  1826. Date: Sun, 26 Jan 1997 11:03:42 -0800
  1827. Organization: Nisus Software, Inc.
  1828.  
  1829. In article <32EB3DB5.1220@worldaccess.nl>, Thomas Okken
  1830. <tho@worldaccess.nl> wrote:
  1831.  
  1832. >Please, could someone give me the e-mail address or URL or whatever it
  1833. >is one uses these days?
  1834.  
  1835. <http://devworld.apple.com/dev/cftype/>
  1836. -- 
  1837.   --  Jim Walker <http://members.aol.com/jwwalker/>
  1838.  
  1839. +++++++++++++++++++++++++++
  1840.  
  1841. >From David Scott <dscott@west.net>
  1842. Date: Sun, 26 Jan 1997 22:22:53 +0000
  1843. Organization: West.Net Communications
  1844.  
  1845. Thomas Okken wrote:
  1846. > Hi all,
  1847. > I have just written a little program that I would like to publish, but
  1848. > from long ago I remember that you should register your application
  1849. > signature and its file types first (to avoid conflicts with other apps).
  1850. > I've been away from Mac development for a while and I don't remember
  1851. > the e-mail address I used for this, back then.
  1852. > Please, could someone give me the e-mail address or URL or whatever it
  1853. > is one uses these days?
  1854. > Thanks in advance!
  1855. >  - Thomas.
  1856.  
  1857.  
  1858. Try  http://gemma.apple.com:80/dev/cftype/main.html
  1859.  
  1860.  
  1861. -- 
  1862.  
  1863.  David Scott
  1864.  
  1865.  
  1866. ---------------------------
  1867.  
  1868. >From pratap@asia.apple.com (Pratap Reddy P.)
  1869. Subject: Serial port arbitration with OT
  1870. Date: Fri, 24 Jan 1997 03:35:07 +0530
  1871. Organization: Apple Developement India
  1872.  
  1873. Hi All,
  1874.  
  1875. I need do serial port arbitration and this has to work with OT(future
  1876. releases also). As for as I know arbitration means "not letting others use
  1877. the port which is already in use". 
  1878.  
  1879. If it is only with the built-in (presently available) 3 ports, I think this
  1880. can be done in 2 ways. one is try opening .AIn, .AOut,...and if it gives
  1881. portIsInUse. second getting DCtlEntry ptrs and checking for open in the
  1882. flags. 
  1883. I don't think this is the preferred way with OT as we might have any number
  1884. of serial ports(?) and might not work also. 
  1885.  
  1886. Is there any better way to do this??
  1887.  
  1888. Thanks for any kind of help,
  1889.  
  1890. Pratap
  1891.  
  1892. -- 
  1893. Pratap P. Reddy
  1894. Apple development India
  1895. email : pratap@asia.apple.com
  1896.  
  1897. phone - (91) - 80 - 2259495
  1898.  
  1899. +++++++++++++++++++++++++++
  1900.  
  1901. >From fahl@dataton.se (Mike Fahl)
  1902. Date: Sun, 26 Jan 1997 20:56:50 +0100
  1903. Organization: Dataton =?ISO-8859-1?Q?=AD=A0TRUE?= MULTIMEDIA
  1904.  
  1905. Pratap Reddy P. <pratap@asia.apple.com> wrote:
  1906.  
  1907. > I need do serial port arbitration and this has to work with OT(future
  1908. > releases also). As for as I know arbitration means "not letting others use
  1909. > the port which is already in use". 
  1910. > If it is only with the built-in (presently available) 3 ports, I think this
  1911. > can be done in 2 ways. one is try opening .AIn, .AOut,...and if it gives
  1912. > portIsInUse. second getting DCtlEntry ptrs and checking for open in the
  1913. > flags. 
  1914.  
  1915. I haven't done any serial port programming through OT. But talking
  1916. directly to the serial drivers (ie, using OpenDriver, Read/Write, etc),
  1917. you have to do exactly as you say. If a serial pport is open by
  1918. LocalTalk when you try to open it you get the portInUse error. However,
  1919. if it is in use by another application, OpenDriver will not return an
  1920. error code, for some obscure historical reason. In this case, you have
  1921. to check the DCtlEntry yourself before calling OpenDriver.
  1922.  
  1923. I susect having the "Serial Arbitrator" extension (part of ARA)
  1924. installed may affect this. But as you can't rely on users aving this
  1925. extension installed, I tend to do it the safe way, and check the
  1926. DCtlEntry. 
  1927.  
  1928. Hopefully, OT handles the "multile apps trying to open the same serial
  1929. port" problem better. But I don't know that for a fact.
  1930.  
  1931. Hope this helps.
  1932.  
  1933. By the way, why do you have to access the serial port through OT instead
  1934. of using OpenDriver?
  1935.  
  1936. Mike Fahl
  1937. - --------------
  1938. Dataton - TRUE MULTIMEDIA integration and show control systems.
  1939. Check it out at http://www.dataton.com
  1940.  
  1941. +++++++++++++++++++++++++++
  1942.  
  1943. >From pratap@asia.apple.com (Pratap Reddy P.)
  1944. Date: Mon, 27 Jan 1997 12:03:24 +0530
  1945. Organization: Apple Developement India
  1946.  
  1947. In article <19970126205650226911@du206-5.ppp.algonet.se>, fahl@dataton.se
  1948. (Mike Fahl) wrote:
  1949.  
  1950. > By the way, why do you have to access the serial port through OT instead
  1951. > of using OpenDriver?
  1952.  
  1953. Thanks for you help, Mike Fahl. It's of great use to me.
  1954.  
  1955. I need to list all the available serial ports with their names and icons
  1956. and have to do arbitration.
  1957.  
  1958. If I do it thru OT, I am sure it will be supported method and there won't
  1959. be any inconsistencies. OT 1.5 provides an API which makes this very
  1960. trivial and straight forward job to me. 
  1961.  
  1962. I do not want to do this in classic method as this (some of the calls)
  1963. might not be supported after sometime, if I am correct.
  1964.  
  1965. Anyway, i got no choice. I have to use OT :-))
  1966.  
  1967. Pratap
  1968.  
  1969. -- 
  1970. Pratap P. Reddy
  1971. Apple development India
  1972. email : pratap@asia.apple.com
  1973.         pratap@applelink.apple.com
  1974.  
  1975. phone - (91) - 80 - 2259495
  1976.  
  1977. ---------------------------
  1978.  
  1979. >From brooks@mail.utexas.edu (Rob Brooks)
  1980. Subject: Virtual Memory Question
  1981. Date: Thu, 16 Jan 1997 14:27:16 -0600
  1982. Organization: The University of Texas
  1983.  
  1984. Hello, this isn't exactly a programming question but I thought some of you
  1985. might be able to help.  How exactly does VM work on the Mac?  What is the
  1986. algorithm for determining what is written to disk and what isn't?
  1987.  
  1988. +++++++++++++++++++++++++++
  1989.  
  1990. >From tloliver@cygnus.uwa.edu.au (Timothy Oliver)
  1991. Date: 22 Jan 1997 18:40:44 GMT
  1992. Organization: The University of Western Australia
  1993.  
  1994. Rob Brooks (brooks@mail.utexas.edu) wrote:
  1995. : Hello, this isn't exactly a programming question but I thought some of you
  1996. : might be able to help.  How exactly does VM work on the Mac?  What is the
  1997. : algorithm for determining what is written to disk and what isn't?
  1998.  
  1999. Hmmm. Apples VM, eh?
  2000.  
  2001. That would be something like. Gee, that page was the most recently used.
  2002. I'll just page that out right now...
  2003.  
  2004. I know. I know. I should have just kept my mouth shut.
  2005.  
  2006.  
  2007. +++++++++++++++++++++++++++
  2008.  
  2009. >From jumplong@aol.com (Jump Long)
  2010. Date: 24 Jan 1997 06:15:10 GMT
  2011. Organization: AOL http://www.aol.com
  2012.  
  2013. >>Rob Brooks (brooks@mail.utexas.edu) wrote:
  2014. >>: Hello, this isn't exactly a programming question but I thought some of
  2015. you
  2016. >>: might be able to help.  How exactly does VM work on the Mac?  What is
  2017. the
  2018. >>: algorithm for determining what is written to disk and what isn't?
  2019. >
  2020. >Timothy Oliver replied:
  2021. >Hmmm. Apples VM, eh?
  2022. >
  2023. >That would be something like. Gee, that page was the most
  2024. >recently used. I'll just page that out right now...
  2025. >
  2026. >I know. I know. I should have just kept my mouth shut.
  2027.  
  2028. Rob, The basics of how Apple's VM system is implemented can be found in
  2029. the Motorola MC68030 Users Manual since that's the Memory Management Unit
  2030. model used in Macintosh systems.
  2031.  
  2032. Apple's VM replaces physical pages that don't have the MMU used bit set
  2033. (the 68k MMU sets the "used" bit in a page's page table entry whenever
  2034. there's a memory access in that page) and that aren't held in physical
  2035. memory by HoldMemory or LockMemory. If all unheld physical pages have been
  2036. "used" since the last page fault, only then does VM simply use the next
  2037. unheld page it sees. If the logical page being replaced is dirty (the
  2038. memory has been written to), then the logical page's data is written to
  2039. the backing store file before the physical page is remapped to a new
  2040. logical page. If the logical page being brought into memory is initialized
  2041. (that is, it had valid data in it when it was last written to disk), then
  2042. it read from disk - otherwise, we leave whatever "garbage" was in the
  2043. physical page there.
  2044.  
  2045. Timothy, try installing System 7.5.5 or 7.6 (when it's available). I've
  2046. done a lot to improve the performance of Apple's VM in the last two system
  2047. releases and I'm wooking for ways to improve the code further.
  2048.  
  2049. - Jim Luther
  2050.  
  2051.  
  2052. +++++++++++++++++++++++++++
  2053.  
  2054. >From Wulf Hofbauer <wh@echo.chem.tu-berlin.de>
  2055. Date: Mon, 27 Jan 1997 14:10:16 +0100
  2056. Organization: Max-Volmer-Institut, TU Berlin
  2057.  
  2058. Jump Long wrote:
  2059. > (the 68k MMU sets the "used" bit in a page's page table entry whenever
  2060. > there's a memory access in that page) and that aren't held in physical
  2061. > memory by HoldMemory or LockMemory. If all unheld physical pages have been
  2062. > "used" since the last page fault, only then does VM simply use the next
  2063. > unheld page it sees.
  2064.  
  2065. Could you elaborate on what "the next page it sees" exactly means? Is it
  2066. a random choice? LRU (least recently used) is not feasible without
  2067. special hardware devoted to it, but at least an approximation like NRU
  2068. (not recently used) or even FIFO should be used. I'd be really
  2069. interested in this. I've always attributed poor VM performance on the
  2070. Mac to thrashing due to heap compaction, but it could also be a bad
  2071. replacement strategy. Can you shed some light on this or is it just
  2072. another one of Apple's secrets?
  2073.  
  2074. > If the logical page being replaced is dirty (the
  2075. > memory has been written to), then the logical page's data is written to
  2076. > the backing store file before the physical page is remapped to a new
  2077. > logical page. If the logical page being brought into memory is initialized
  2078. > (that is, it had valid data in it when it was last written to disk), then
  2079. > it read from disk - otherwise, we leave whatever "garbage" was in the
  2080. > physical page there.
  2081.  
  2082. Does this mean that no supply of clean pages is maintained (which would
  2083. often halve latency on a page fault)?
  2084.  
  2085. - Wulf
  2086.  
  2087. -- 
  2088.  ________________________________________________________
  2089. ! Dipl. Phys. Wulf Hofbauer  (wh@echo.chem.tu-berlin.de) !
  2090. ! Max-Volmer-Institut     Technische Universitaet Berlin !
  2091. ! Strasse des 17. Juni 135     10623 Berlin      Germany !
  2092. !________________________________________________________!
  2093.  
  2094. ---------------------------
  2095.  
  2096. >From arroz@ip.pt (Miguel Arroz)
  2097. Subject: What does "register" means on variable declaration?
  2098. Date: Sun, 2 Feb 1997 23:18:57 +0000
  2099. Organization: Home
  2100.  
  2101. Hi!
  2102.  
  2103.  What does regsiter means before a declaration? For example,
  2104.  
  2105.  register WindowPeek myWindow;
  2106.  int a;
  2107.  register WindowPtr otherWIndow;
  2108.  
  2109.  Please answer by mail too, because I don't receive every article on
  2110. this group.
  2111.  
  2112.   Yours
  2113.  
  2114. Miguel
  2115.  
  2116. -- 
  2117. Miguel Barreto da Silva Arroz - Carnaxide, Portugal - arroz@ip.pt
  2118.  
  2119. www.geocities.com/SiliconValley/3232 - How to put your Mac on the net
  2120. http://www.geocities.com/SiliconValley/3232/softpage.html - SoftPage
  2121.  
  2122. +++++++++++++++++++++++++++
  2123.  
  2124. >From mh@pdasolutions.com (Mark Hartman)
  2125. Date: 2 Feb 1997 20:45:06 -0700
  2126. Organization: Mark Hartman Computer Solutions
  2127.  
  2128. In article <19970202231857601641@pm-1-10.carnaxide.ip.pt>, arroz@ip.pt
  2129. (Miguel Arroz) wrote:
  2130.  
  2131. > What does regsiter means before a declaration? For example,
  2132. >
  2133. > register WindowPeek myWindow;
  2134. > int a;
  2135. > register WindowPtr otherWIndow;
  2136.  
  2137. A "register" declaration means that, if possible, the program will assign
  2138. a CPU register to hold this value.  There are some implications of this:
  2139.  
  2140. 1)  It can't be guaranteed (there may be no registers available when needed).
  2141. 2)  A register has no address, so - depending upon the compiler - trying to
  2142.     take the address of a "register" variable may result in either a run-
  2143.     time or compile-time error, or it may result in an undefined value. YMMV.
  2144. 3)  It's very fast, especially as a pointer from which other data is
  2145.     referenced, because it's already in a register so the CPU doesn't have
  2146.     to do (as many) indirect memory references.
  2147. ==========================================================================
  2148.   Mark Hartman Computer Solutions - specializing in all things Macintosh
  2149.      C  C++   4th Dimension   Networking   System design/architecture
  2150. tel +1(714)758.0640 -+- fax +1(714)999.5030 -+- e-mail mh@pdasolutions.com
  2151. ==========================================================================
  2152.           A virus for Windows '95?  Isn't that a bit redundant?
  2153.  
  2154. +++++++++++++++++++++++++++
  2155.  
  2156. >From cbarron3@ix.netcom.com
  2157. Date: Sun, 2 Feb 1997 23:57:01 -0500
  2158. Organization: Netcom
  2159.  
  2160. Miguel Arroz <arroz@ip.pt> wrote:
  2161.  
  2162. > Hi!
  2163. >  What does regsiter means before a declaration? For example,
  2164. >  register WindowPeek myWindow;
  2165. >  int a;
  2166. >  register WindowPtr otherWIndow;
  2167. >  Please answer by mail too, because I don't receive every article on
  2168. > this group.
  2169. >   Yours
  2170. > Miguel
  2171.  
  2172.   Register is a keyword that tells the C compiler to use a register if
  2173. avaiable, for this auto variable. Many optimizing C compilers ignore
  2174. this as they do place in regs heavily used variables.  The number of
  2175. avaiable register variables is cpu and compiler dependent.
  2176.  
  2177. +++++++++++++++++++++++++++
  2178.  
  2179. >From woody@alumni.caltech.edu (William Edward Woody)
  2180. Date: Sun, 02 Feb 1997 21:33:06 -0800
  2181. Organization: In Phase Consulting
  2182.  
  2183. arroz@ip.pt (Miguel Arroz) wrote:
  2184. > Hi!
  2185. >  What does regsiter means before a declaration? For example,
  2186. >  register WindowPeek myWindow;
  2187. >  int a;
  2188. >  register WindowPtr otherWIndow;
  2189. >  Please answer by mail too, because I don't receive every article on
  2190. > this group.
  2191. >   Yours
  2192. > Miguel
  2193.  
  2194. It's a hint to the compiler that the variable should be put into an
  2195. available processor register. Sometimes this helps the code run
  2196. faster: it allows someone who knows he will be using a variable
  2197. often to keep it in a register (which is faster) than put the
  2198. variable on the processor's stack (which is slower).
  2199.  
  2200. Note that you only have a few registers: on the 68K Mac, you have
  2201. about a half-dozen, and on the PowerPC, you only have a dozen. And
  2202. for each variable you put into a register, it's one less register
  2203. the compiler has to use for itself.
  2204.  
  2205.                                         - Bill
  2206.  
  2207. -- 
  2208. William Edward Woody - In Phase Consulting - woody@alumni.caltech.edu
  2209.                  http://www.alumni.caltech.edu/~woody
  2210.  
  2211. +++++++++++++++++++++++++++
  2212.  
  2213. >From don_arb@wolfenet.com (Don Arbow)
  2214. Date: Tue, 04 Feb 1997 10:14:03 -0800
  2215. Organization: Wolfe Internet Access, L.L.C.
  2216.  
  2217. In article <woody-0202972133070001@192.0.2.1>, woody@alumni.caltech.edu
  2218. (William Edward Woody) wrote:
  2219.  
  2220. :  
  2221. :  Note that you only have a few registers: on the 68K Mac, you have
  2222. :  about a half-dozen, and on the PowerPC, you only have a dozen. And
  2223. :  for each variable you put into a register, it's one less register
  2224. :  the compiler has to use for itself.
  2225. :  
  2226.  
  2227. The PowerPC has 32 general purpose registers.  Two are used for program
  2228. maintenance, one for the stack and one for the TOC.  That leaves 30
  2229. general purpose registers for use by a procedure, much more than enough. 
  2230. There are also 32 floating point registers.
  2231.  
  2232. Don
  2233.  
  2234. -- 
  2235. - ------------------------------------------------------------------------
  2236.     \ | /    Don Arbow, Partner, CTO |  don_arb@wolfenet.com
  2237.   -- EDO --  EveryDay Objects, Inc.  |     ^ delete underscore
  2238.     / | \    Seattle, WA             |   http://www.edo-inc.com
  2239. - ------------------------------------------------------------------------
  2240.   My Prographing web page:   http://www.wolfe.net/~donarb/Dataflow.html
  2241.         "The fix is only temporary, unless it works" - Red Green
  2242. - ------------------------------------------------------------------------
  2243.  
  2244. +++++++++++++++++++++++++++
  2245.  
  2246. >From woody@alumni.caltech.edu (William Edward Woody)
  2247. Date: Tue, 04 Feb 1997 17:54:28 -0800
  2248. Organization: In Phase Consulting
  2249.  
  2250. don_arb@wolfenet.com (Don Arbow) wrote:
  2251. > woody@alumni.caltech.edu (William Edward Woody) wrote:
  2252. > :  
  2253. > :  Note that you only have a few registers: on the 68K Mac, you have
  2254. > :  about a half-dozen, and on the PowerPC, you only have a dozen. And
  2255. > :  for each variable you put into a register, it's one less register
  2256. > :  the compiler has to use for itself.
  2257. > :  
  2258. > The PowerPC has 32 general purpose registers.  Two are used for program
  2259. > maintenance, one for the stack and one for the TOC.  That leaves 30
  2260. > general purpose registers for use by a procedure, much more than enough. 
  2261. > There are also 32 floating point registers.
  2262.  
  2263. Eh, a dozen, a couple dozen; what's the difference?
  2264.  
  2265. But seriously, I thought the Macintosh ABI reserved more than just two
  2266. of the general purpose registers for other purposes. On the other hand,
  2267. it does leave more than a dozen registers for general purpose use.
  2268. My flippant remark stands corrected.
  2269.  
  2270. Note that the 'register' keyword works best when you have quite a
  2271. few references to a particular variable and no subroutine calls. Otherwise,
  2272. with each subroutine call all those registers have to be pushed and
  2273. restored--that's because the C compiler has no way to know which
  2274. registers may be changed across the subroutine.
  2275.  
  2276.                                                 - Bill
  2277.  
  2278. -- 
  2279. William Edward Woody - In Phase Consulting - woody@alumni.caltech.edu
  2280.                  http://www.alumni.caltech.edu/~woody
  2281.  
  2282. ---------------------------
  2283.  
  2284. >From Tim Humphrey <humphret@lurch.winthrop.edu>
  2285. Subject: Window Lists for Other Apps
  2286. Date: Mon, 3 Feb 1997 18:24:40 -0500 (EST)
  2287. Organization: Info Avenue INTERNET Access
  2288.  
  2289. How do you get a window list for other open applications.  I know it's 
  2290. possible because the extension TitlePop can do it.  Anyone here know how?
  2291.  
  2292. ..._Tim_...
  2293. --=[There is great power in the act of visualization.]=--
  2294. http://www.winthrop.edu/~humphret
  2295. zzhumphreyt@winthrop.edu
  2296.  
  2297.  
  2298. +++++++++++++++++++++++++++
  2299.  
  2300. >From Tim Humphrey <humphret@lurch.winthrop.edu>
  2301. Date: Tue, 4 Feb 1997 10:05:59 -0500 (EST)
  2302. Organization: Info Avenue INTERNET Access
  2303.  
  2304. On Tue, 4 Feb 1997, Olivier Beaudoux wrote:
  2305.  
  2306. > If you write an INIT, the best way is to patch the trap that call
  2307. > NewWindow() 
  2308. > (and patch the Dispose/CloseWindow() to...). By this way, you can creat
  2309. > your own global 
  2310. > window list (and their related application). This is not really a hard
  2311. > work.
  2312.  
  2313. Hey, now there's an idea!  One thing though, would I have to 
  2314. implement this as an INIT, because wouldn't switching out my app, 
  2315. well, prevent me getting the window list?  I'll probably try it out 
  2316. and see what happens.
  2317.  
  2318. ..._Tim_...
  2319. --=[There is great power in the act of visualization.]=--
  2320. http://www.winthrop.edu/~humphret
  2321. zzhumphreyt@winthrop.edu
  2322.  
  2323.  
  2324.  
  2325. +++++++++++++++++++++++++++
  2326.  
  2327. >From Olivier Beaudoux <beaudoux@lra.eseo.fr>
  2328. Date: Tue, 04 Feb 1997 14:33:11 -0800
  2329. Organization: Universite d'Angers, France.
  2330.  
  2331. There is no direct way to access all application window list :-(
  2332.  
  2333. If you write an application, the only way (I think...) is to use Process
  2334. Manager to 
  2335. scan all open applications (by using SetFonrtProcess()) and get their
  2336. own window list 
  2337. (by using FrontWindow()).Therefore, it's not really nice: you have to
  2338. switch to all opened
  2339. applications AND you have to access private window data (WindowPeek)
  2340.  
  2341. If you write an INIT, the best way is to patch the trap that call
  2342. NewWindow() 
  2343. (and patch the Dispose/CloseWindow() to...). By this way, you can creat
  2344. your own global 
  2345. window list (and their related application). This is not really a hard
  2346. work.
  2347.  
  2348. Have fun.
  2349.  
  2350. Bod
  2351.  
  2352. +++++++++++++++++++++++++++
  2353.  
  2354. >From dnebing@epix.net (Dave Nebinger)
  2355. Date: Tue, 04 Feb 1997 14:28:36 -0600
  2356. Organization: KHP Services, Inc
  2357.  
  2358. In article <Pine.ULT.3.90.970204095707.2224A-100000@hermes.winthrop.edu>, Tim Humphrey <humphret@lurch.winthrop.edu> wrote:
  2359.  
  2360. // On Tue, 4 Feb 1997, Olivier Beaudoux wrote:
  2361. // 
  2362. // > If you write an INIT, the best way is to patch the trap that call
  2363. // > NewWindow() 
  2364. // 
  2365. // Hey, now there's an idea!  One thing though, would I have to 
  2366. // implement this as an INIT, because wouldn't switching out my app, 
  2367. // well, prevent me getting the window list?  I'll probably try it out 
  2368. // and see what happens.
  2369.  
  2370. You could try the layer manager (documented at the alt.sources.mac
  2371. archive site).  The LM still works, even though Apple said it might
  2372. go away...
  2373.  
  2374. Dave.
  2375.  
  2376. ==========================================================
  2377. Dave Nebinger                             dnebing@epix.net
  2378.              The Alt.Sources.Mac Archivist
  2379.      <http://www.AmbrosiaSW.com/alt.sources.mac/>
  2380.     <ftp://ftp.AmbrosiaSW.com/pub/alt.sources.mac/>
  2381.  
  2382. ---------------------------
  2383.  
  2384. >From Joseph Strout <jstrout@ucsd.edu>
  2385. Subject: must scriptability be so hard?
  2386. Date: Tue, 14 Jan 1997 14:34:02 -0800
  2387. Organization: The University of California at San Diego
  2388.  
  2389. I have a little app (http://www-acs.ucsd.edu/~jstrout/macvol/) which just
  2390. takes a data file, some parameters from the user, and generates a picture.
  2391. I'd like to do it properly, i.e., include balloon help, speech
  2392. recognition, and make it scriptable/recordable/extensible.
  2393.  
  2394. Now, balloon help and SR are pretty easy.  But the Inside Mac book on
  2395. making something scriptable completely befuddles me (and I haven't even
  2396. gotten to the parts on being recordable or calling scripts from within the
  2397. app yet).  All I want is to let the user get and set a host of variables
  2398. (e.g., "set xangle to yangle + 4"), and Render.  My app already responds
  2399. to the Required suite of AppleEvents (thanks to MacZoop!), so I thought it
  2400. would be fairly easy to add these few additional commands.  But instead,
  2401. it looks like a very frightening task.
  2402.  
  2403. Can anyone help?  Is there a simplified C++ wrapper somewhere, or an
  2404. automatic 'aete' generator perhaps?  Or maybe an article that at least
  2405. explains it all in a more concrete manner?
  2406.  
  2407. Many thanks for any help you can provide.
  2408. -- Joe Strout
  2409.  
  2410. ,------------------------------------------------------------------.
  2411. |    Joseph J. Strout           Department of Neuroscience, UCSD   |
  2412. |    jstrout@ucsd.edu           http://www-acs.ucsd.edu/~jstrout/  |
  2413. `------------------------------------------------------------------'
  2414.  
  2415.  
  2416. +++++++++++++++++++++++++++
  2417.  
  2418. >From uzs90z@uni-bonn.de (Michael Schuerig)
  2419. Date: Wed, 15 Jan 1997 13:31:09 +0100
  2420. Organization: RHRZ - University of Bonn (Germany)
  2421.  
  2422. Mark Hartman <mh@pdasolutions.com> wrote:
  2423.  
  2424. > In article <Pine.SGI.3.94.970114142643.3872E-100000@knack>, Joseph Strout
  2425. > <jstrout@ucsd.edu> wrote:
  2426. [...] 
  2427. > >Now, balloon help and SR are pretty easy.  But the Inside Mac book on
  2428. > >making something scriptable completely befuddles me (and I haven't even
  2429. > >gotten to the parts on being recordable or calling scripts from within the
  2430. > >app yet).  All I want is to let the user get and set a host of variables
  2431. > >(e.g., "set xangle to yangle + 4"), and Render.  My app already responds
  2432. > >to the Required suite of AppleEvents (thanks to MacZoop!), so I thought it
  2433. > >would be fairly easy to add these few additional commands.  But instead,
  2434.  
  2435. > The key to doing it is to conceptually break your app into two parts: the
  2436. > user interface and the engine.  The engine should be controlled by
  2437. > AppleEvents; the user interface should only send/receive AppleEvents
  2438. > to/from the engine. In this way, ANYONE can control the engine using
  2439. > AppleEvents.  You just have to resist the temptation to directly control
  2440. > your engine.
  2441.  
  2442. That's not sufficient, unfortunately. Even after factoring the app this
  2443. way you're still a long way from scriptability if you want to do it
  2444. right. Object model scriptability requires you to implement the
  2445. hierarchy of your user-leve objects and its interaction with the
  2446. "engine". This will probably force you to go deeper into the guts of
  2447. your app than you like and it's a pain to implement.
  2448.  
  2449. Your best bet is to go with a framework that supports scriptability:
  2450. MacApp, ODF, PowerPlant, TCL. Sorry to say, but with MacZoop you're out
  2451. of luck, I guess.
  2452.  
  2453. Michael
  2454.  
  2455. - -
  2456. Michael Schuerig
  2457. mailto:uzs90z@uni-bonn.de
  2458. http://www.uni-bonn.de/~uzs90z/
  2459.  
  2460. +++++++++++++++++++++++++++
  2461.  
  2462. >From mh@pdasolutions.com (Mark Hartman)
  2463. Date: 14 Jan 1997 22:17:04 -0700
  2464. Organization: Mark Hartman Computer Solutions
  2465.  
  2466. In article <Pine.SGI.3.94.970114142643.3872E-100000@knack>, Joseph Strout
  2467. <jstrout@ucsd.edu> wrote:
  2468.  
  2469. >I have a little app (http://www-acs.ucsd.edu/~jstrout/macvol/) which just
  2470. >takes a data file, some parameters from the user, and generates a picture.
  2471. >I'd like to do it properly, i.e., include balloon help, speech
  2472. >recognition, and make it scriptable/recordable/extensible.
  2473. >
  2474. >Now, balloon help and SR are pretty easy.  But the Inside Mac book on
  2475. >making something scriptable completely befuddles me (and I haven't even
  2476. >gotten to the parts on being recordable or calling scripts from within the
  2477. >app yet).  All I want is to let the user get and set a host of variables
  2478. >(e.g., "set xangle to yangle + 4"), and Render.  My app already responds
  2479. >to the Required suite of AppleEvents (thanks to MacZoop!), so I thought it
  2480. >would be fairly easy to add these few additional commands.  But instead,
  2481. >it looks like a very frightening task.
  2482. >
  2483. >Can anyone help?  Is there a simplified C++ wrapper somewhere, or an
  2484. >automatic 'aete' generator perhaps?  Or maybe an article that at least
  2485. >explains it all in a more concrete manner?
  2486.  
  2487. The key to doing it is to conceptually break your app into two parts: the
  2488. user interface and the engine.  The engine should be controlled by AppleEvents;
  2489. the user interface should only send/receive AppleEvents to/from the engine.
  2490. In this way, ANYONE can control the engine using AppleEvents.  You just have
  2491. to resist the temptation to directly control your engine.
  2492.  
  2493. Does that help?
  2494. ==========================================================================
  2495.   Mark Hartman Computer Solutions - specializing in all things Macintosh
  2496.      C  C++   4th Dimension   Networking   System design/architecture
  2497. tel +1(714)758.0640 -+- fax +1(714)999.5030 -+- e-mail mh@pdasolutions.com
  2498. ==========================================================================
  2499.             Windows '95: How often do you want to crash today?
  2500.  
  2501. +++++++++++++++++++++++++++
  2502.  
  2503. >From Joseph Strout <jstrout@ucsd.edu>
  2504. Date: Wed, 15 Jan 1997 14:50:59 -0800
  2505. Organization: The University of California at San Diego
  2506.  
  2507. On 14 Jan 1997, Mark Hartman wrote:
  2508.  
  2509. > >making something scriptable completely befuddles me ...
  2510. > >  All I want is to let the user get and set a host of variables
  2511. > >(e.g., "set xangle to yangle + 4"), and Render.  My app already responds
  2512. > >to the Required suite of AppleEvents (thanks to MacZoop!), so I thought it
  2513. > >would be fairly easy to add these few additional commands.  But instead,
  2514. > >it looks like a very frightening task.
  2515. > The key to doing it is to conceptually break your app into two parts: the
  2516. > user interface and the engine.  The engine should be controlled by AppleEvents;
  2517. > the user interface should only send/receive AppleEvents to/from the engine.
  2518. > In this way, ANYONE can control the engine using AppleEvents.  You just have
  2519. > to resist the temptation to directly control your engine.
  2520. > Does that help?
  2521.  
  2522. I'm afraid it does not.  I understand the theory.  I just can't get a
  2523. grasp of the nuts and bolts of it.  There's a LOT of stuff apparently
  2524. involved: 'aete's, 'aeut's, AppleEvents, etc.
  2525.  
  2526. The framework I'm using (MacZoop) already receives and responds to the
  2527. standard 4 AppleEvents, so I suppose I can extend that to receive
  2528. additional ones.  But there's more to making it scriptable than that,
  2529. right?  I need to define the scripting dictionary, at least.
  2530.  
  2531. After about 3 hours of searching, I finally found an 'aete' editor
  2532. (/devworld/Tool_Chest/Interapplication_Communication/AE_Tools_/ResEdit_'aete'_Editor_1.0b4.sit.hqx)
  2533. ...this helps quite a bit.  But it's still not clear what will happen when
  2534. one of these aete-defined verbs is invoked.
  2535.  
  2536. This is probably easy stuff for professional Mac programmers, but for a
  2537. hobbyist, it seems very complicated.  I was hoping that somewhere, someone
  2538. had boiled it down to a "for a simple scriptable app, follow these steps"
  2539. document.
  2540.  
  2541. ,------------------------------------------------------------------.
  2542. |    Joseph J. Strout           Department of Neuroscience, UCSD   |
  2543. |    jstrout@ucsd.edu           http://www-acs.ucsd.edu/~jstrout/  |
  2544. `------------------------------------------------------------------'
  2545.  
  2546.  
  2547. +++++++++++++++++++++++++++
  2548.  
  2549. >From Joseph Strout <jstrout@ucsd.edu>
  2550. Date: Thu, 16 Jan 1997 10:31:05 -0800
  2551. Organization: The University of California at San Diego
  2552.  
  2553. On Wed, 15 Jan 1997, Michael Schuerig wrote:
  2554.  
  2555. > > The key to doing it is to conceptually break your app into two parts: the
  2556. > > user interface and the engine....
  2557. > That's not sufficient, unfortunately. Even after factoring the app this
  2558. > way you're still a long way from scriptability if you want to do it
  2559. > right. Object model scriptability requires you to implement the
  2560. > hierarchy of your user-leve objects and its interaction with the
  2561. > "engine". This will probably force you to go deeper into the guts of
  2562. > your app than you like and it's a pain to implement.
  2563.  
  2564. I'm not sure what you mean by "object model" scriptability.
  2565.  
  2566. > Your best bet is to go with a framework that supports scriptability:
  2567. > MacApp, ODF, PowerPlant, TCL. Sorry to say, but with MacZoop you're out
  2568. > of luck, I guess.
  2569.  
  2570. Could be; MacZoop's primary attraction is that it's simple.  But I'm not
  2571. convinced that it can't do it.  Yesterday I finally found an 'aete'
  2572. editor, and today I figured out how to receive the AppleEvents that result
  2573. from AppleScript calls.  These are caught by a generic handler, and passed
  2574. up the command chain like other events, until somebody handles it.
  2575.  
  2576. It seems to work fine so far; I even made a command recordable by sending
  2577. myself an AppleEvent for the command instead of calling it directly.  (And
  2578. we may talk Graham into doing the same for the core MacZoop commands.)
  2579. But then, I haven't yet tried anything complicated like the "get" and
  2580. "set" AppleEvents.  Do these require some deeper support architecture?  In
  2581. other words, what is it that PowerPlant, TCL, etc. have that makes
  2582. handling this stuff easier?
  2583.  
  2584. Many thanks for your patience,
  2585. -- Joe
  2586.  
  2587. ,------------------------------------------------------------------.
  2588. |    Joseph J. Strout           Department of Neuroscience, UCSD   |
  2589. |    jstrout@ucsd.edu           http://www-acs.ucsd.edu/~jstrout/  |
  2590. `------------------------------------------------------------------'
  2591.  
  2592.  
  2593. +++++++++++++++++++++++++++
  2594.  
  2595. >From "Thomas L. Ferrell" <f44@ornl.gov>
  2596. Date: 17 Jan 1997 03:22:59 GMT
  2597. Organization: Oak Ridge National Lab
  2598.  
  2599. The AppleScript guru Cal Simone, has a series of articles in Develop on 
  2600. Scriptability in apps. I believe issue 22 has "Designing a Scriptable 
  2601. Implementation". You can access all of Develop (tho it's better to get 
  2602. the CD) at Apples dev site.
  2603. tom
  2604.  
  2605.  
  2606.  
  2607. +++++++++++++++++++++++++++
  2608.  
  2609. >From lai@apple.com (Edmund K. Lai)
  2610. Date: Thu, 16 Jan 1997 15:09:26 -0800
  2611. Organization: Apple Computer
  2612.  
  2613. In article <Pine.SGI.3.94.970114142643.3872E-100000@knack>, Joseph Strout
  2614. <jstrout@ucsd.edu> wrote:
  2615.  
  2616. > I have a little app (http://www-acs.ucsd.edu/~jstrout/macvol/) which just
  2617. > takes a data file, some parameters from the user, and generates a picture.
  2618. > I'd like to do it properly, i.e., include balloon help, speech
  2619. > recognition, and make it scriptable/recordable/extensible.
  2620. > Now, balloon help and SR are pretty easy.  But the Inside Mac book on
  2621. > making something scriptable completely befuddles me (and I haven't even
  2622. > gotten to the parts on being recordable or calling scripts from within the
  2623. > app yet).  All I want is to let the user get and set a host of variables
  2624. > (e.g., "set xangle to yangle + 4"), and Render.  My app already responds
  2625. > to the Required suite of AppleEvents (thanks to MacZoop!), so I thought it
  2626. > would be fairly easy to add these few additional commands.  But instead,
  2627. > it looks like a very frightening task.
  2628.  
  2629. >From what I understand, you have just a bunch of variables in your
  2630. application, xangle, yangle, zlength etc, they are all at the same
  2631. level, i.e. you don't have something like zlength of the third rectangle
  2632. in the fifth part. And you just want to be able to set or get these
  2633. varaibles. So it is just Set [xangle|yangle|zlength] to value or
  2634. Get [xangle|yangle|zlength]
  2635.  
  2636. That would be trival.
  2637.  
  2638. In your aete define a bunch of enum, mapping xangle, yangle, zlength
  2639. etc each into a unique 4 letter codes like 'XANG', 'YANG', 'ZLNG'.
  2640.  
  2641. Then define a 'setd' Apple Event, the event name is 'SET' and there
  2642. is a direct parameter that is a enum and a parameter named 'TO' with a
  2643. four letter code 'TO  '.
  2644.  
  2645. Also define a 'getd' Apple Event with a direct parameter that is a enum.
  2646.  
  2647. Then in your application, install a 'setd' event handler and also a
  2648. 'getd' event handler. In the event handler, get the direct parameter.
  2649. It should be one of four letter code in the enum, that defines which
  2650. variable it is referencing. In the 'getd' event, just put the result
  2651. in the reply Apple Event. In the 'setd' event, fetch the 'TO  ' parameter
  2652. and then set the variable to this value.
  2653.  
  2654. That is all you have to do.
  2655.  
  2656. +++++++++++++++++++++++++++
  2657.  
  2658. >From mortensen@embl-heidelberg.de (P. Mortensen)
  2659. Date: 20 Jan 1997 01:01:34 GMT
  2660. Organization: EMBL
  2661.  
  2662. > Can anyone help?  Is there a simplified C++ wrapper somewhere, or an
  2663. > automatic 'aete' generator perhaps?  Or maybe an article that at least
  2664. > explains it all in a more concrete manner?
  2665.  
  2666. Resorcerer has a very good aete editor.
  2667.  
  2668.  
  2669. >> >making something scriptable completely befuddles me ...
  2670. >> >  All I want is to let the user get and set a host of variables
  2671. >> >(e.g., "set xangle to yangle + 4"), and Render.  My app already responds
  2672. >This is probably easy stuff for professional Mac programmers, but for a
  2673. >hobbyist, it seems very complicated.  I was hoping that somewhere, someone
  2674. >had boiled it down to a "for a simple scriptable app, follow these steps"
  2675. >document.
  2676.  
  2677. If you use PowerPlant or TCL it becomes much simpler. You don't even
  2678. have 
  2679. to understand what is going on, just override the appropriate member 
  2680. functions. The only thing that is missing is example code. 
  2681. I provide source code directly from two "production" applications:
  2682.  
  2683. <http://www.mann.embl-heidelberg.de/Development/ImplementAppleScript.htm
  2684. l>
  2685.   "Implement AppleScript support in your Macintosh application"
  2686.  
  2687.  
  2688.  
  2689. >But then, I haven't yet tried anything complicated like the "get" and
  2690. >"set" AppleEvents.  Do these require some deeper support architecture?  In
  2691. >other words, what is it that PowerPlant, TCL, etc. have that makes
  2692. >handling this stuff easier?
  2693.  
  2694. The frameworks take care of the generic stuff: installing call-backs,
  2695. object specifiers, etc. To add one more property put in one more case
  2696. in DoPropertySetDataEvent(), DoPropertyGetDataEvent() and
  2697. AccessObject() in the C++ object that represents the element  (for
  2698. TCL)
  2699.  
  2700.  
  2701. >The AppleScript guru Cal Simone, has a series of articles in Develop on 
  2702. >Scriptability in apps. I believe issue 22 has "Designing a Scriptable 
  2703. >Implementation". You can access all of Develop (tho it's better to get 
  2704. >the CD) at Apples dev site.
  2705.  
  2706. That (excellent) article only describes design of the aete resource
  2707. and not the code implementation. The aete resource describes
  2708. the mapping between user terms seen in the Script Editor and the 4
  2709. byte code used internally in the program to refer to properties,
  2710. elements, enumerations, etc.
  2711.  
  2712.  
  2713.  
  2714. Regards,
  2715. Peter Mortensen
  2716.  
  2717.  
  2718. - ----------------------------------------------------------------------
  2719.  
  2720. Peter Mortensen,                    E-mail:
  2721. mortensen@embl-heidelberg.de    
  2722. Software Engineer, M.Sc.E.E.                    FAX: +49 (0)6221 387
  2723. 306
  2724. European Molecular Biology Laboratory (EMBL)  Phone: +49 (0)6221 387
  2725. 560
  2726. http://www.mann.embl-heidelberg.de/PPG/PersonalPages/PeterM/PeterM.html
  2727.  
  2728. +++++++++++++++++++++++++++
  2729.  
  2730. >From Zeppenwolf@Opion.com (Zeppenwolf)
  2731. Date: Mon, 20 Jan 1997 13:47:21 -0700
  2732. Organization: http://Opion.com
  2733.  
  2734.  
  2735. In article <5bug5e$a53@lion.embl-heidelberg.de>, mortensen@embl-heidelberg.de 
  2736.  
  2737. > Resorcerer has a very good aete editor.
  2738.  
  2739.    No, it doesn't.  It has a very good aete 'viewer', but you're
  2740. out of luck if you want to do serious 'editing'.  There's no
  2741. substitute for EightyRez.  No, I'm not associated.
  2742.  
  2743.    And that hypercard stack is buggy, and therefore almost useless...
  2744.  
  2745. > If you use PowerPlant or TCL it becomes much simpler. You don't even
  2746.  
  2747.    Amazingly, I found, the TCL AE code is vastly more complete than the
  2748. MW AE code, which sticks it to me right up the kazoo, cuz I'm currently
  2749. trying to port a TCL app to PP.  The AE code is by far the biggest hurdle...
  2750.  
  2751. Z
  2752.  
  2753. +++++++++++++++++++++++++++
  2754.  
  2755. >From mortensen@embl-heidelberg.de (P. Mortensen)
  2756. Date: 21 Jan 1997 09:11:04 GMT
  2757. Organization: EMBL
  2758.  
  2759. In article <Zeppenwolf-2001971347210001@207.67.197.76>
  2760. Zeppenwolf@Opion.com (Zeppenwolf) writes:
  2761.  
  2762. > > Resorcerer has a very good aete editor.
  2763. >    No, it doesn't.  It has a very good aete 'viewer', but you're
  2764. > out of luck if you want to do serious 'editing'.  There's no
  2765. > substitute for EightyRez.  No, I'm not associated.
  2766.  
  2767. I have been using Resorcerer's aete editor for the last 2 years with
  2768. great success but if EightyRez is so much better then I will buy it. Do
  2769. you have ordering information? (company name, address, fax, etc.)
  2770.  
  2771.  
  2772. How do you define "serious 'editing'?"
  2773.  
  2774.  
  2775.  
  2776.  
  2777. Regards,
  2778. Peter Mortensen
  2779.  
  2780.  
  2781. - ----------------------------------------------------------------------
  2782.  
  2783. Peter Mortensen,                    E-mail:
  2784. mortensen@embl-heidelberg.de    
  2785. Software Engineer, M.Sc.E.E.                    FAX: +49 (0)6221 387
  2786. 306
  2787. European Molecular Biology Laboratory (EMBL)  Phone: +49 (0)6221 387
  2788. 560
  2789. http://www.mann.embl-heidelberg.de/PPG/PersonalPages/PeterM/PeterM.html
  2790.  
  2791. +++++++++++++++++++++++++++
  2792.  
  2793. >From Zeppenwolf@Opion.com (Zeppenwolf)
  2794. Date: Tue, 21 Jan 1997 11:45:16 -0700
  2795. Organization: http://Opion.com
  2796.  
  2797. In article <5c2178$6j0@lion.embl-heidelberg.de>, mortensen@embl-heidelberg.de 
  2798.  
  2799. > I have been using Resorcerer's aete editor for the last 2 years with
  2800. > great success but if EightyRez is so much better then I will buy it. Do
  2801. > you have ordering information? (company name, address, fax, etc.)
  2802.  
  2803.    Actually, I remember going through hoops trying to find/buy it-- I
  2804. actually had to make inquiries through the US mail!!  But I found this
  2805. in the readme:
  2806.  
  2807.    (From EightyRez readme)
  2808.  ] Report bugs and other problems to gmcgath@condes.mv.com.
  2809.  
  2810.  
  2811.    I originally got the first piece of it by downloading a demo version
  2812. from a MacWareSite somewhere.  Then you send away for the number.
  2813.  
  2814.    Anyway, for the nominal cost, there's no excuse not to have it if
  2815. you have to work with aete's...
  2816.  
  2817. > How do you define "serious 'editing'?"
  2818.  
  2819.    You say you've been using Res: do you regularly create/delete
  2820. sub-objects in the aete?
  2821.  
  2822.    I remember that Resorcerer would let me do a few things but not
  2823. some others...?  I think that I could cut/paste, but I couldn't create
  2824. a new element of one of the sub-objects in that template; I don't 
  2825. really remember now-- I ended up only using it on my aete's to fix the
  2826. buggy parts of the Hypercard stack output.
  2827.  
  2828.    About that, there was some problem in creating 'plurals', so
  2829. making a class 'widget' and the same class but with plural flag,
  2830. 'widgeaux', (French), wouldn't create the element in the aete, and I
  2831. always had to do it by hand...
  2832.  
  2833. Z
  2834.  
  2835. +++++++++++++++++++++++++++
  2836.  
  2837. >From Doug McKenna <doug@mathemaesthetics.com>
  2838. Date: Tue, 21 Jan 1997 21:38:58 +0000
  2839. Organization: Online Network Enterprises, Inc.
  2840.  
  2841. > > Resorcerer has a very good aete editor.
  2842. >    No, it doesn't.  It has a very good aete 'viewer', but you're
  2843. > out of luck if you want to do serious 'editing'.  There's no
  2844. > substitute for EightyRez.  No, I'm not associated.
  2845. >    And that hypercard stack is buggy, and therefore almost useless...
  2846.  
  2847. Resorcerer indeed edit's 'aete's using its standard template mechanism,
  2848. and a great many developers have bought it solely to do 'aete' editing.  
  2849.  
  2850. Resorcerer 2.0 will have a dedicated 'aete' editor that will be far
  2851. superior to the current method of using the data editor with the
  2852. template.  Please check out our website for further details on the
  2853. upgrade.
  2854.  
  2855. Doug McKenna
  2856. Mathemaesthetics, Inc.
  2857. PO Box 298
  2858. Boulder, CO 80306-0298
  2859. USA
  2860. resorcerer@mathemaesthetics.com      <-- New internet email address
  2861. http://www.mathemaesthetics.com      <-- New website
  2862. (303) 440-0707 (vox)
  2863. (303) 440-0504 (fax)
  2864.  
  2865. +++++++++++++++++++++++++++
  2866.  
  2867. >From wanderer@metamage.com (Joshua Juran)
  2868. Date: Wed, 22 Jan 1997 06:04:14 -0500
  2869. Organization: People who haven't founded organizations (Who founded it?)
  2870.  
  2871. In article <Pine.SGI.3.94.970114142643.3872E-100000@knack>, Joseph Strout
  2872. <jstrout@ucsd.edu> wrote:
  2873.  
  2874. > Now, balloon help and SR are pretty easy.  But the Inside Mac book on
  2875. > making something scriptable completely befuddles me (and I haven't even
  2876. > gotten to the parts on being recordable or calling scripts from within the
  2877. > app yet).  All I want is to let the user get and set a host of variables
  2878. > (e.g., "set xangle to yangle + 4"), and Render.  My app already responds
  2879. > to the Required suite of AppleEvents (thanks to MacZoop!), so I thought it
  2880. > would be fairly easy to add these few additional commands.  But instead,
  2881. > it looks like a very frightening task.
  2882.  
  2883.    It is.
  2884.  
  2885.    I was confronted by this when I chose to Do Things Right with regard to
  2886. Apple events in the two applications in TinyMUSH/Mac. The Netmush is the
  2887. server, and Game Wiz is a client that controls the server. The current
  2888. shipping version just defines custom Apple events with no parameters for
  2889. "Startup", "Shutdown", and "Make New Database". My intent here was just to
  2890. make something which worked, so I could toss the AppleScript hack, which
  2891. didn't.
  2892.    But I wanted to support multiple 'game instances' per server, which
  2893. meant that Game Wiz needed to know their names. In AppleScript, this would
  2894. be written as 'get the name of every instance'. In AEGizmos,
  2895. "core\getd{want:type(prop), form:prop, seld:pnam, from:obj{want:type(cIns),
  2896. form:abso, seld:all, from:null()}}". I realized that a full-blown Object
  2897. Model implementation would be the Right Thing to Do, rather than some
  2898. half-baked code to see if the event was requesting the names, and if so,
  2899. return them. It was at this point I decided to Do Things Right and roll my
  2900. own support library. I don't think C++ is the right tool here, but it's
  2901. what I've got.
  2902.  
  2903. > Can anyone help?  Is there a simplified C++ wrapper somewhere, or an
  2904. > automatic 'aete' generator perhaps?  Or maybe an article that at least
  2905. > explains it all in a more concrete manner?
  2906.  
  2907.    I have not concerned myself with the 'aete' really, because Game Wiz is
  2908. an application and doesn't need user terminology. I hacked in enough using
  2909. the ResEdit editor to test Netmush from the Script Editor. I have much more
  2910. to learn before I actually write anything on this. Maybe I can use this as
  2911. a paper and get into MacHack for free? :-)
  2912.    As for a "simplified C++ wrapper", I think this does indeed fit the
  2913. bill. My target is not just the server-side handling that PowerPlant
  2914. already does, but the whole deal -- I need a framework that Game Wiz can
  2915. use to send Apple events and get replies in the mail er, event queue, :-)
  2916. and be able to pick up from where it left off. This has the potential to
  2917. create some really nightmarish code, which I'd like to head off before I
  2918. write it, by creating this framework. (That part isn't done yet -- I'm
  2919. still sending kWaitReply.)
  2920.    But I've created a bunch of C++ classes -- for descriptors, tokens,
  2921. model objects, event handlers, object accessors, event prototypes, and
  2922. event instances. One of the main things these wrapper classes do is that
  2923. they encapsulate the error-checking and throw exceptions. This really
  2924. cleans up the calling code, A LOT. I was amazed (ow, think I sprained my
  2925. arm) :-) when I rewrote a routine to send an Apple event -- the
  2926. error-checking is completely gone! The code is much easier to read and
  2927. actually makes some semantic sense without having to figure out exactly
  2928. what effect each statement will have.
  2929.    I'm currently working on the object accessors. I have a CModelObject
  2930. class, from which other classes may inherit, like CModelApp (which in turn
  2931. is inherited by the app's class). A semi-generic accessor to get model
  2932. objects from other model objects calls an overridable class method. A
  2933. special accessor for anything from 'null' redispatches the access using the
  2934. application as a model object, so it's the only accessor that needs to know
  2935. absolutely where the application is (of which it's informed through its
  2936. constructor). Lists are coming soon.
  2937.  
  2938.    By the way, I have an implementation question: In the model object from
  2939. model object accessor, it's possible that the access must return a list.
  2940. Instead of abstracting the return type so as to include a list (which means
  2941. making a class for it, etc.) I just create an AEDesc and throw that as an
  2942. exception -- which the dispatching accessor is ready to catch and deal with
  2943. appropriately. Pretty cool, huh? I love exceptions!
  2944.    Anyway, is this a good way to do it, or am I abusing the language?
  2945.  
  2946.    The only online information about this class library is on the
  2947. TinyMUSH/Mac Web page at <http://www.metamage.com/mush/>. If you're really
  2948. interested in creating awesome Mac software, I request that you stop by
  2949. there and also <http://www.metamage.com/mammal/>, my multi-stage project to
  2950. create a Web Browser For The Rest Of Us. And if this excites you, then you
  2951. should definitely take a look at
  2952. <http://www.metamage.com/softdev/donating.html>. :-)
  2953.  
  2954.    I'd like to finish this thing first. Then I'll exhibit it in my products
  2955. (first TinyMUSH/Mac, then Mammal, then whatever else I write that makes
  2956. sense to make scriptable). At some point I may choose to distribute the
  2957. source. However, if someone could enroll me in the possibility of, say,
  2958. kick-butt software for the Mac, it might see light of day sooner...
  2959.  
  2960. Josh
  2961.  
  2962. -- 
  2963. Joshua Juran                              Metamage Software
  2964. =)                                     and other creative arts
  2965. wanderer@metamage.com
  2966. <http://www.metamage.com/>             * Home of TinyMUSH/Mac *
  2967.  
  2968. +++++++++++++++++++++++++++
  2969.  
  2970. >From Joseph Strout <jstrout@ucsd.edu>
  2971. Date: Wed, 22 Jan 1997 08:50:12 -0800
  2972. Organization: The University of California at San Diego
  2973.  
  2974. On Wed, 22 Jan 1997, Joshua Juran wrote:
  2975.  
  2976. > I realized that a full-blown Object
  2977. > Model implementation would be the Right Thing to Do, rather than some
  2978. > half-baked code to see if the event was requesting the names, and if so,
  2979. > return them. It was at this point I decided to Do Things Right and roll my
  2980. > own support library. I don't think C++ is the right tool here, but it's
  2981. > what I've got.
  2982.  
  2983. I don't think it's a bad tool.  The object model is weakly typed and
  2984. rather smalltalky, but C++ can deal with that...
  2985.  
  2986. >    But I've created a bunch of C++ classes -- for descriptors, tokens,
  2987. > model objects, event handlers, object accessors, event prototypes, and
  2988. > event instances. One of the main things these wrapper classes do is that
  2989. > they encapsulate the error-checking and throw exceptions. This really
  2990. > cleans up the calling code, A LOT. I was amazed (ow, think I sprained my
  2991. > arm) :-) when I rewrote a routine to send an Apple event -- the
  2992. > error-checking is completely gone! The code is much easier to read and
  2993. > actually makes some semantic sense without having to figure out exactly
  2994. > what effect each statement will have.
  2995.  
  2996. I bet!  This sounds like a great library.  (Why doesn't Apple do things
  2997. like this?  The IM code examples are still in Pascal, fer cryin' out
  2998. loud...)
  2999.  
  3000. >    By the way, I have an implementation question: In the model object from
  3001. > model object accessor, it's possible that the access must return a list.
  3002. > Instead of abstracting the return type so as to include a list (which means
  3003. > making a class for it, etc.) I just create an AEDesc and throw that as an
  3004. > exception -- which the dispatching accessor is ready to catch and deal with
  3005. > appropriately. Pretty cool, huh? I love exceptions!
  3006. >    Anyway, is this a good way to do it, or am I abusing the language?
  3007.  
  3008. Hmm, I might have gone for abstraction -- but your solution seems to work
  3009. too.
  3010.  
  3011. >    I'd like to finish this thing first. Then I'll exhibit it in my products
  3012. > (first TinyMUSH/Mac, then Mammal, then whatever else I write that makes
  3013. > sense to make scriptable). At some point I may choose to distribute the
  3014. > source.
  3015.  
  3016. It sounds like a great library, and I encourage you to make the source
  3017. freely available as soon as you can.  This will encourage others to write
  3018. great Mac software.
  3019.  
  3020. As for me, I'm finally getting the hang of this whole AppleEvents and
  3021. Object Model kaboodle.  I'm working with Graham Cox to incorporate
  3022. easy-to-use support for it into MacZoop, a simple-but-super C++ app
  3023. framework.
  3024.  
  3025. Keep up the good work!
  3026. -- Joe
  3027.  
  3028. ,------------------------------------------------------------------.
  3029. |    Joseph J. Strout           Department of Neuroscience, UCSD   |
  3030. |    jstrout@ucsd.edu           http://www-acs.ucsd.edu/~jstrout/  |
  3031. `------------------------------------------------------------------'
  3032.  
  3033.  
  3034. +++++++++++++++++++++++++++
  3035.  
  3036. >From fpottier@pauillac.inria.fr (Francois Pottier)
  3037. Date: 22 Jan 1997 15:48:58 GMT
  3038. Organization: INRIA Rocquencourt, BP 105, 78153 Le Chesnay Cedex, France
  3039.  
  3040. In article <32E53769.495D@mathemaesthetics.com>,
  3041. Doug McKenna  <doug@mathemaesthetics.com> wrote:
  3042.  
  3043. >Resorcerer 2.0 will have a dedicated 'aete' editor that will be far
  3044. >superior to the current method of using the data editor with the
  3045. >template.
  3046.  
  3047. Do you have pricing information for version 2.0 (regular price and
  3048. student discount)?
  3049.  
  3050. Thanks!
  3051.  
  3052.  
  3053.  
  3054. --
  3055. FranÁois Pottier
  3056. Francois.Pottier@inria.fr
  3057. http://pauillac.inria.fr/~fpottier/
  3058.  
  3059. +++++++++++++++++++++++++++
  3060.  
  3061. >From Doug McKenna <doug@mathemaesthetics.com>
  3062. Date: Wed, 22 Jan 1997 22:11:32 +0000
  3063. Organization: Online Network Enterprises, Inc.
  3064.  
  3065. Francois Pottier writes:
  3066.  
  3067. > Do you have pricing information for version 2.0 (regular price and
  3068. > student discount)?
  3069. > Thanks!
  3070.  
  3071. Not yet.  It will be on the website when the time comes.
  3072.  
  3073. Doug McKenna
  3074. Mathemaesthetics, Inc.
  3075. PO Box 298
  3076. Boulder, CO 80306-0298
  3077. USA
  3078. resorcerer@mathemaesthetics.com      <-- New internet email address
  3079. http://www.mathemaesthetics.com      <-- New website
  3080. (303) 440-0707 (vox)
  3081. (303) 440-0504 (fax)
  3082.  
  3083. +++++++++++++++++++++++++++
  3084.  
  3085. >From gmcgath@mv.mv.com (Gary McGath)
  3086. Date: Fri, 24 Jan 1997 09:31:00 -0500
  3087. Organization: Conceptual Design
  3088.  
  3089. In article <5c2178$6j0@lion.embl-heidelberg.de>,
  3090. mortensen@embl-heidelberg.de (P. Mortensen) wrote:
  3091.  
  3092. >In article <Zeppenwolf-2001971347210001@207.67.197.76>
  3093. >Zeppenwolf@Opion.com (Zeppenwolf) writes:
  3094. >
  3095. >> > Resorcerer has a very good aete editor.
  3096. >> 
  3097. >>    No, it doesn't.  It has a very good aete 'viewer', but you're
  3098. >> out of luck if you want to do serious 'editing'.  There's no
  3099. >> substitute for EightyRez.  No, I'm not associated.
  3100. >
  3101. >I have been using Resorcerer's aete editor for the last 2 years with
  3102. >great success but if EightyRez is so much better then I will buy it. Do
  3103. >you have ordering information? (company name, address, fax, etc.)
  3104.  
  3105. For full information on EightyRez, see my Web page at
  3106.  
  3107.   http://www.ultranet.com/~gmcgath/EightyRez.html
  3108.  
  3109. It's available by mail, or can be downloaded from Software Unboxed.
  3110. There's a link from my page for doing the latter.
  3111.  
  3112. -- 
  3113.    Gary McGath     gmcgath@ultranet.com
  3114.    http://www.ultranet.com/~gmcgath
  3115.  
  3116. +++++++++++++++++++++++++++
  3117.  
  3118. >From lga@sma.ch (Laurent Gasser)
  3119. Date: 27 Jan 1997 13:45:52 GMT
  3120. Organization: Swiss Meteorological Institute
  3121.  
  3122. In article <Pine.SUN.3.94.970115144449.19330A-100000@szechuan>, Joseph Strout <jstrout@ucsd.edu> writes:
  3123. > I'm afraid it does not.  I understand the theory.  I just can't get a
  3124. > grasp of the nuts and bolts of it.  There's a LOT of stuff apparently
  3125. > involved: 'aete's, 'aeut's, AppleEvents, etc.
  3126. >   
  3127. > ,------------------------------------------------------------------.
  3128. > |    Joseph J. Strout           Department of Neuroscience, UCSD   |
  3129. > |    jstrout@ucsd.edu           http://www-acs.ucsd.edu/~jstrout/  |
  3130. > `------------------------------------------------------------------'
  3131.  
  3132. I remember seeing an Apple example at their site (the Developper's side).
  3133. It was called 7Edit and offered similar capabilities as the ScriptEditor.
  3134. This could be another way to learn it, by the example.
  3135.  
  3136. -- 
  3137. Laurent Gasser (lga@sma.ch)
  3138. Computers do not solve problems, they execute solutions.
  3139.  
  3140.  
  3141.  
  3142. +++++++++++++++++++++++++++
  3143.  
  3144. >From fahl@dataton.se (Mike Fahl)
  3145. Date: Tue, 28 Jan 1997 22:32:23 +0100
  3146. Organization: Dataton =?ISO-8859-1?Q?=AD=A0TRUE?= MULTIMEDIA
  3147.  
  3148. Laurent Gasser <lga@sma.ch> wrote:
  3149.  
  3150. > Joseph Strout <jstrout@ucsd.edu> writes:
  3151. > > 
  3152. > > I just can't get a
  3153. > > grasp of the nuts and bolts of it.  There's a LOT of stuff apparently
  3154. > > involved: 'aete's, 'aeut's, AppleEvents, etc.
  3155.   
  3156. I agree. I spent a lot of time before I eventually got the hang of it.
  3157. Once I did, I discovered that it was actually rather simple and elegant!
  3158. I'm sure the original inventors of OSA and the object model went
  3159. ballistic when they saw what a mess the documentation department made of
  3160. their baby.
  3161.  
  3162. Not only does the documentation manage to make it all appear very
  3163. complicated and convoluted. It's also plain wrong in many places, such
  3164. as this example from the description of the AEGetAttributePtr function:
  3165.  
  3166. "You can use the AEGetAttributePtr function to get a pointer to a buffer
  3167. that contains the data from a specified Apple event attribute."
  3168.  
  3169. This function does not "get a pointer" in any way - rather the opposite.
  3170. The function retieves the data from the specified attribute, and stores
  3171. that data in a buffer you provide by passing it a pointer to said
  3172. buffer. Any reasonably experienced programmer can fugure that out. But
  3173. too much of that goofy technobabbel can make even the most determined
  3174. decipherer go astray from time to time.
  3175.  
  3176. By the way, I get the same feeling from many of the new (black) Inside
  3177. Mac books (with the possible exception of the Open Transport book). They
  3178. give me the creeps. They contain sooo much text, but for me its all
  3179. organized in the wrong way.
  3180.  
  3181. I had *no* problems whatsoever understanding the old (white) IM books.
  3182. They explain how things work starting off at the right end (the basics).
  3183. However, I've also heard people saying the opposite, so I assume it's
  3184. just me that's warped. But it would be interesting to know if there's
  3185. someone else out there feeling the same way.
  3186.  
  3187. All IMHO, of course. And pardon the rambling - I just couldn't resist
  3188. the temptation.
  3189.  
  3190. Mike Fahl
  3191. - --------------
  3192. Dataton - TRUE MULTIMEDIA integration and show control systems.
  3193. Check it out at http://www.dataton.com
  3194.  
  3195. +++++++++++++++++++++++++++
  3196.  
  3197. >From mortensen@embl-heidelberg.de (P. Mortensen)
  3198. Date: 28 Jan 1997 23:21:57 GMT
  3199. Organization: EMBL
  3200.  
  3201. In article <5cibigINNcjh@maz4.sma.ch>
  3202. lga@sma.ch (Laurent Gasser) writes:
  3203.  
  3204. > > I'm afraid it does not.  I understand the theory.  I just can't get a
  3205. > > grasp of the nuts and bolts of it.  There's a LOT of stuff apparently
  3206. > > involved: 'aete's, 'aeut's, AppleEvents, etc.
  3207. > >   
  3208. > > ,------------------------------------------------------------------.
  3209. > > |    Joseph J. Strout           Department of Neuroscience, UCSD   |
  3210. > > |    jstrout@ucsd.edu           http://www-acs.ucsd.edu/~jstrout/  |
  3211. > > `------------------------------------------------------------------'
  3212. > > 
  3213. > I remember seeing an Apple example at their site (the Developper's side).
  3214. > It was called 7Edit and offered similar capabilities as the ScriptEditor.
  3215. > This could be another way to learn it, by the example.
  3216.  
  3217. Or have a look at my source code for a script interface (taken directly
  3218. from 2 programs in everyday use here at our lab):
  3219.  
  3220. <ftp://mac-mann6.embl-heidelberg.de/Saturn/Pub/Development/ImplementAppl
  3221. eScript/TCL/ScriptingImpl_TCL1.1.sit.hqx>
  3222.  
  3223. and
  3224.  
  3225. <ftp://mac-mann6.embl-heidelberg.de/Saturn/Pub/Development/ImplementAppl
  3226. eScript/PowerPlant/ScriptingImpl_PP1.0.sit.hqx>     (Be sure to read
  3227. the readMe file)
  3228.  
  3229. The executables are also available.
  3230.  
  3231.  
  3232.  
  3233. Regards,
  3234. Peter Mortensen
  3235.  
  3236.  
  3237. - ----------------------------------------------------------------------
  3238.  
  3239. Peter Mortensen,                    E-mail:
  3240. mortensen@embl-heidelberg.de    
  3241. Software Engineer, M.Sc.E.E.                    FAX: +49 (0)6221 387
  3242. 306
  3243. European Molecular Biology Laboratory (EMBL)  Phone: +49 (0)6221 387
  3244. 560
  3245. http://www.mann.embl-heidelberg.de/PPG/PersonalPages/PeterM/PeterM.html
  3246.  
  3247. +++++++++++++++++++++++++++
  3248.  
  3249. >From Bob Foster <bobfoster@worldnet.att.net>
  3250. Date: Fri, 31 Jan 1997 23:42:54 +0000
  3251. Organization: Symantec Corp.
  3252.  
  3253. Zeppenwolf wrote:
  3254. > In article <5bug5e$a53@lion.embl-heidelberg.de>, mortensen@embl-heidelberg.de
  3255. > > Resorcerer has a very good aete editor.
  3256. >    No, it doesn't.  It has a very good aete 'viewer', but you're
  3257. > out of luck if you want to do serious 'editing'.  There's no
  3258. > substitute for EightyRez.  No, I'm not associated.
  3259. >    And that hypercard stack is buggy, and therefore almost useless...
  3260. > > If you use PowerPlant or TCL it becomes much simpler. You don't even
  3261. >    Amazingly, I found, the TCL AE code is vastly more complete than the
  3262. > MW AE code, which sticks it to me right up the kazoo, cuz I'm currently
  3263. > trying to port a TCL app to PP.  The AE code is by far the biggest hurdle...
  3264.  
  3265. Amazingly? :-]
  3266.  
  3267. Bob
  3268.  
  3269. ---------------------------
  3270.  
  3271. End of C.S.M.P. Digest
  3272. **********************
  3273.